PendingIntent 如何触发意图?
How PendingIntent triggers intent?
例如,我们有。
PendingIntent pi= PendingIntent.getActivity(context, requestCode, intent, FLAG);
当我们将 pi
对象传递给其他 class 或其他应用程序时,我们知道包装在 pi
中的意图稍后将由该 class 或应用程序触发对吗?
不明白怎么触发?
当我们使用 intent 启动组件 manually/immediately 时,我们调用对应于确切组件类型(startActivity(intent), startService(intent)
等)的方法,据我所知没有像 [=15 这样的方法=]
感谢您的帮助。
P.S.
我想有一种简单的方法可以通过在意图明确时检查 Class 个对象
Intent intent = new Intent(context, clazz):
在这种情况下系统可以检查是否 clazz.isAssignableFrom(Service.class)
并调用 startService(intent).
但是对于隐含的意图,我无法意识到发生了什么。
当您得到 PendingIntent
时,您可以调用 getActivity()
、getBroadcast()
或 getService()
。创建 PendingIntent
时,Intent
的类型包含在 PendingIntent
中,以便它知道 Intent
是否用于 Activity
、BroadcastReceiver
或 Service
.
稍后,当使用 PendingIntent
时,会调用从 PendingIntent
获取 IntentSender
。要实际发送 Intent
,将调用 IntentSender.sendIntent()
。 IntentSender
知道 PendingIntent
是如何创建的,因此知道它是否应该使用 startActivity()
、sendBroadcast()
或 startService()
来正确发送 Intent
。
注意:
关于您关于如何使用显式 Intent
s 工作的假设:这行不通,因为通常实际发送 Intent
的应用程序无法访问您的应用程序的代码,因此无法加载您的 类 并且无法使用 Class.isAssignableFrom()
来确定 Intent
.
的类型
例如,我们有。
PendingIntent pi= PendingIntent.getActivity(context, requestCode, intent, FLAG);
当我们将 pi
对象传递给其他 class 或其他应用程序时,我们知道包装在 pi
中的意图稍后将由该 class 或应用程序触发对吗?
不明白怎么触发?
当我们使用 intent 启动组件 manually/immediately 时,我们调用对应于确切组件类型(startActivity(intent), startService(intent)
等)的方法,据我所知没有像 [=15 这样的方法=]
感谢您的帮助。
P.S. 我想有一种简单的方法可以通过在意图明确时检查 Class 个对象
Intent intent = new Intent(context, clazz):
在这种情况下系统可以检查是否 clazz.isAssignableFrom(Service.class)
并调用 startService(intent).
但是对于隐含的意图,我无法意识到发生了什么。
当您得到 PendingIntent
时,您可以调用 getActivity()
、getBroadcast()
或 getService()
。创建 PendingIntent
时,Intent
的类型包含在 PendingIntent
中,以便它知道 Intent
是否用于 Activity
、BroadcastReceiver
或 Service
.
稍后,当使用 PendingIntent
时,会调用从 PendingIntent
获取 IntentSender
。要实际发送 Intent
,将调用 IntentSender.sendIntent()
。 IntentSender
知道 PendingIntent
是如何创建的,因此知道它是否应该使用 startActivity()
、sendBroadcast()
或 startService()
来正确发送 Intent
。
注意:
关于您关于如何使用显式 Intent
s 工作的假设:这行不通,因为通常实际发送 Intent
的应用程序无法访问您的应用程序的代码,因此无法加载您的 类 并且无法使用 Class.isAssignableFrom()
来确定 Intent
.