在android中有3种Intent,
那么什么是粘性意图?
答案 0 :(得分:60)
意图 - 是Android组件之间的消息传递机制,Content Provider除外。您可以使用Intent启动任何 成分
粘性意图 - 用于Android的棒,用于未来的广播听众。例如,如果BATTERY_LOW事件发生那么意图 将坚持Android以便任何未来的请求 BATTERY_LOW,将返回Intent。
待定意图 - 如果您希望某人在未来的某个时间点代表您执行任何意图操作,那么我们将使用 等待意图。
答案 1 :(得分:28)
与粘性广播一起使用的意图称为粘性意图。 这个意图将坚持使用android系统,用于未来的广播接收器请求。
OR
sendStickyBroadcast()
执行称为粘性的sendBroadcast(Intent)
,即您发送的意图在广播完成后保持不变,以便其他人可以通过{{1}的返回值快速检索该数据}。在所有其他方面,这与registerReceiver(BroadcastReceiver, IntentFilter)
的行为相同。通过操作系统发送的粘性广播的一个示例是sendBroadcast(Intent)
。当您为该操作调用ACTION_BATTERY_CHANGED
时 - 即使使用null BroadcastReceiver - 您将获得上次为该操作广播的Intent。因此,您可以使用它来查找电池的状态,而无需注册电池中所有未来的状态更改。
答案 2 :(得分:4)
Pending Intent: Pending Intent实际上是一个对象,它包含一个Intent,可以通过另一个应用程序完成未来的工作。
它允许我们将未来的Intent传递给另一个应用程序并允许该应用程序执行该Intent,就好像它具有与我们的应用程序相同的权限,无论我的应用程序是否仍然存在于Intent中最终被调用。
PendingIntent通常用于需要执行AlarmManager或通知的情况。 PendingIntent为应用程序提供了工作的平均值,即使它们的进程退出也是如此。
PendingIntent使用以下方法处理不同类型的意图:
PendingIntent.getActivity() : Retrieve a PendingIntent to start an Activity
PendingIntent.getBroadcast() : Retrieve a PendingIntent to perform a Broadcast
PendingIntent.getService() : Retrieve a PendingIntent to start a Service
示例:
Intent intent = new Intent(this, SomeActivity.class);
// Creating a pending intent and wrapping our intent
PendingIntent pendingIntent = PendingIntent.getActivity(this, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT);
try {
// Perform the operation associated with our pendingIntent
pendingIntent.send();
} catch (PendingIntent.CanceledException e) {
e.printStackTrace();
}
意图: Intent基本上是Android的不同组件之间的消息传递机制,Content Provider除外。您可以使用intent启动Android中的任何组件。
Sticky Intent:这些是为未来的广播听众提供Android的Intents。
Sticky Intent也是一种Intent,允许在函数和服务之间进行通信sendStickyBroadcast(),执行一个称为sticky的sendBroadcast(Intent),你发送的意图在广播完成后保持不变,其他人可以通过registerReceiver(BroadcastReceiver,IntentFilter)的返回值快速检索数据。在所有其他方面,这与sendBroadcast(Intent)的行为相同。
通过操作系统发送的粘性广播的一个示例是ACTION_BATTERY_CHANGED。当您为该操作调用registerReceiver()时 - 即使使用null BroadcastReceiver - 您将获得该操作的最后一次广播的Intent。因此,您可以使用它来查找电池的状态,而无需注册电池的所有未来状态更改。
答案 3 :(得分:3)
Intent :Intent是一个异步消息,用于在android中的组件之间进行通信,Content Provider除外。 例如,你可以开始活动 startActivity(意图意图);
Sticky Intent :粘性意图与未来广播事件的android系统相关联。
待定意图:您希望将来在应用程序未处于活动状态时触发的意图。
答案 4 :(得分:1)
与粘性广播一起使用的意图称为粘性意图。这个意图将坚持使用android系统,用于未来的广播接收器请求。
答案 5 :(得分:0)
Sticky Intent允许函数和服务之间的通信sendStickyBroadcast()执行sendBroadcast(Intent)知道为粘性,您发送的Intent在广播完成后保持不变,以便其他人可以通过返回值快速检索该数据registerReceiver(BroadcastReceiver,IntentFilter)。在所有其他方面,这与sendBroadcast(Intent)相同。