我有两个申请。 App A
和App B
。
App A
是主要的应用程序。 App A
可以打开App B
。另一方面,App B
是一个包含3个活动的独立应用程序。
AppB.FirstActivity =让用户从列表中选择项目 AppB.SecondActivity =根据所选项目执行处理 AppB.ThirdActivity =这是用户可以接受结果或重试处理的地方
App A
希望收到基于AppB.ThirdActivity
输出的信息。
我尝试使用startActivityForResult()
来调用AppB.FirstActivity
的App B
(来自App A
)但是无济于事,我在onActivityResult
得到的只是一个空数据。
我怎样才能得到AppB.ThirdActivity
的结果?
我认为最好的方案是在intent
消息上打开另一个应用程序。
当第二个应用程序完成其工作时,在onDestroy
发送另一个intent
来运行第一个应用程序。 intent
应该有正确的标志来保持第一个应用程序的正确状态。
第一个应用
Intent intent = new Intent();
intent.setAction("custom.action");
MainActivity.this.startActivity(intent);
清单文件:
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="custom.action" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
第二个应用,目标活动:
@Override
protected void onDestroy() {
Intent intent = new Intent();
intent.setComponent(new ComponentName("com.home.androiddemo", "com.home.androiddemo.MainActivity"));
intent.setAction("custom.android");
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);
// TODO pass necessary outcome
super.onDestroy();
}
清单文件:
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="custom.action" />
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>