android - 启动另一个应用程序的活动以获得它的结果

jud*_*ira 6 android launch android-intent android-activity

我有两个应用程序,A和B.

从A开始,我使用以下代码为结果启动B:

Intent fmIntent = getPackageManager().getLaunchIntentForPackage("com.example.B");
fmIntent.putExtra("hello", "world");
startActivityForResult(fmIntent, REQUEST_TEST);
Run Code Online (Sandbox Code Playgroud)

从B,我正在做以下事情:

getIntent().putExtra("completed", true);
setResult(RESULT_OK, getIntent());
finish();
Run Code Online (Sandbox Code Playgroud)

如果我在同一个应用程序中执行上述操作,则按预期工作.

但是,由于它有两个不同的应用程序,我收到一个空的意图,没有数据和未设置的结果代码.我应如何编辑上述内容以确保始终保持一个意图?

小智 5

相关问题“ Android onActivityResult在活动甚至开始之前触发! ”中提供了解决方案。以这种方式创建意图:

Intent myIntent = new Intent();
myIntent.setClassName("com.example.B", "com.example.B.ActivityB");
startActivityForResult(myIntent, 600);
Run Code Online (Sandbox Code Playgroud)

我面临同样的问题并以这种方式解决。

  • 你如何从中得到结果? (3认同)

Aya*_*fov 5

使用setFlags(0)清洁,可通过以下方式创建的所有标志getLaunchIntentForPackage

Intent fmIntent = getPackageManager().getLaunchIntentForPackage("com.example.B");
fmIntent.setFlags(0);
fmIntent.putExtra("hello", "world");
startActivityForResult(fmIntent, REQUEST_TEST);
Run Code Online (Sandbox Code Playgroud)