我想使用隐式意图启动一个应用程序,但在该应用程序启动之前,我需要处理该意图并启动一个状态机,然后该状态机将加载一个Activity。
我可以使用广播接收器或活动来完成此操作
<receiver android:name="com.13.MyBroadcastReceiver">
<intent-filter>
<action android:name="com.13.StartStateMachine" />
</intent-filter>
</receiver>但我无法控制其他应用程序是否会响应同样的意图。
或
<activity android:name="com.13.MyReceiverActivity">
<intent-filter>
<action android:name="com.13.StartStateMachine" />
</intent-filter>
</activity >但这不是干净的,我可以先处理onCreate(),然后再处理finish()。
你知道我是否可以使用这些方法的组合吗?我的意思是使用隐式(或显式)意图从另一个应用程序加载一个类(即不是BroadcastReceiver或Activity)?
发布于 2016-09-23 23:52:28
由于这两个应用程序都是您的,因此欢迎您使用任何您想要的IPC机制。
使用Activity的好处是,您可以选择将所有内容都放在同一个任务中。因此,当应用程序A启动应用程序B的活动时,所有这些都可以是一个任务。任何其他IPC机制都会强制您启动一个新任务。
因此,正如我在评论中建议的那样,使用PackageManager将隐式Intent转换为显式use。然后,使用您想要的任何IPC。如果您想使用“广播”(显式Intent使其更像是“窄播”),则欢迎您这样做。
我的意思是,一个活动将控制权转移给另一个活动,可能是使用finish(),这并不是真正的“肮脏”。毕竟,应用程序使用的许多启动屏幕最终都是这样做的。我的意思是,使用任何其他进程间通信机制来启动一个活动,而startActivity()可以很好地工作,这是“脏”的。
https://stackoverflow.com/questions/39663009
复制相似问题