首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android:不是Activity或BroadcastReceiver的类中的威胁隐含意图

Android:不是Activity或BroadcastReceiver的类中的威胁隐含意图
EN

Stack Overflow用户
提问于 2016-09-23 22:15:28
回答 1查看 56关注 0票数 1

我想使用隐式意图启动一个应用程序,但在该应用程序启动之前,我需要处理该意图并启动一个状态机,然后该状态机将加载一个Activity

我可以使用广播接收器或活动来完成此操作

代码语言:javascript
复制
<receiver android:name="com.13.MyBroadcastReceiver">
    <intent-filter>
        <action android:name="com.13.StartStateMachine" />
    </intent-filter>
</receiver>

但我无法控制其他应用程序是否会响应同样的意图。

代码语言:javascript
复制
<activity android:name="com.13.MyReceiverActivity">
    <intent-filter>
        <action android:name="com.13.StartStateMachine" />
    </intent-filter>
</activity >

但这不是干净的,我可以先处理onCreate(),然后再处理finish()

你知道我是否可以使用这些方法的组合吗?我的意思是使用隐式(或显式)意图从另一个应用程序加载一个类(即不是BroadcastReceiverActivity)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-23 23:52:28

由于这两个应用程序都是您的,因此欢迎您使用任何您想要的IPC机制。

使用Activity的好处是,您可以选择将所有内容都放在同一个任务中。因此,当应用程序A启动应用程序B的活动时,所有这些都可以是一个任务。任何其他IPC机制都会强制您启动一个新任务。

因此,正如我在评论中建议的那样,使用PackageManager将隐式Intent转换为显式use。然后,使用您想要的任何IPC。如果您想使用“广播”(显式Intent使其更像是“窄播”),则欢迎您这样做。

我的意思是,一个活动将控制权转移给另一个活动,可能是使用finish(),这并不是真正的“肮脏”。毕竟,应用程序使用的许多启动屏幕最终都是这样做的。我的意思是,使用任何其他进程间通信机制来启动一个活动,而startActivity()可以很好地工作,这是“脏”的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39663009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档