Tom*_*omb 142 android android-activity
我正在使用电话从我的应用程序中的主要活动启动活动startActivityForResult(intent, ACTIVITY_TYPE),它们都在工作但只有一个.
这个,当被调用时,根据需要启动活动,但在日志中我可以看到它onActivityResult()立即被触发.活动显示但RESULT_CANCELED立即返回onActivityResult().
然后,我与活动互动,按下一个按钮,调用finish(),并且onActivityResult()不叫这个时候(因为很明显的结果已经返回).
这对任何人都有意义吗?以前有人见过这种行为吗?
Fal*_*rri 309
startActivityForResult()如果您的活动是作为singleInstance或启动的,则无法使用singleTask.standard或singleTop启动模式将解决问题.
小智 21
我以前见过这种行为,请确保您的destnation活动(特殊活动)不在singleInstanceAndroidManifest文件中.如果活动是singleInstance,那么它将RESULT_CANCELED在启动之前返回!
小智 18
我还想补充一点,您可以使用以下内容调用外部应用程序:默认情况下Intent in = caller.getPackageManager().getLaunchIntentForPackage("com.your.package.here");
会创建一个Intent.FLAG_ACTIVITY_NEW_TASK添加的意图,因此调用:in.setFlags(0);
将清除该标志,然后您可以继续:startActivityForResult(in, action);
我这样做的原因是我有一个实用程序应用程序,它在一些其他应用程序之间具有通用功能,我可以将代码更改保存到一个位置,而不是担心多个更新.
如果FLAG_ACTIVITY_NEW_TASK您有意图,它也会触发。
Intent intent = new Intent(this, MyActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivityForResult(intent, REQUEST_CODE);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31635 次 |
| 最近记录: |