Android startActivityForResult启动退出应用程序的第二个活动 脚本

Android startActivityForResult启动退出应用程序的第二个活动 脚本,android,android-activity,activity-lifecycle,Android,Android Activity,Activity Lifecycle,活动A(登录)启动活动B,然后完成() 活动B调用startActivityForResult(活动C) 活动C运行良好,然后在选择电话号码后退出(应该如此) --回到桌面(应用程序停止) 为什么没有回到活动B的onActivityResult() 笔记 我已经在活动B上创建了正确的onActivityResult() 我已经搜索并阅读了stackoverflow上有关startActivityForResult的每一条数据 密码单 启动活动B的代码: ComponentName compo

活动A(登录)启动活动B,然后完成()

活动B调用startActivityForResult(活动C)

活动C运行良好,然后在选择电话号码后退出(应该如此)

--回到桌面(应用程序停止)

为什么没有回到活动B的onActivityResult()

笔记 我已经在活动B上创建了正确的onActivityResult()

我已经搜索并阅读了stackoverflow上有关startActivityForResult的每一条数据

密码单 启动活动B的代码:

ComponentName   component   = new ComponentName("com.emobiletelecom", PokeTALK.class.getName());
    Intent          intent      = new Intent();
    intent.setComponent(component);
startActivity(intent);
    finish();
启动活动C的代码:

startActivityForResult(new Intent(this, ContactsPickerActivity.class), 2007);
Intent intent = new Intent();
    intent.putExtra(KEY_PHONE_NUMBER, contactNumber); 

    setResult(RESULT_OK, intent);
    finish();
enter code here
代码完成活动C:

startActivityForResult(new Intent(this, ContactsPickerActivity.class), 2007);
Intent intent = new Intent();
    intent.putExtra(KEY_PHONE_NUMBER, contactNumber); 

    setResult(RESULT_OK, intent);
    finish();
enter code here
日志
04-23 16:32:27.382:I/ActivityManager(28158):启动
来自pid 30108的{cmp=com.emobiletelecom/com.codinguser.android.contactpicker.ContactsPickerActivity}
04-23 16:32:27.392:W/WindowManager(28158):为层21010(180x300)拍摄故障截图
04-23 16:32:27.432:V/PokeTALK(30108):暂停
04-23 16:32:27.642:I/WindowManager(28158):createSurface窗口{415eefe8 com.emobiletelecom/com.codinguser.android.contactpicker.ContactsPickerActivity暂停=false}:绘图正在挂起
04-23 16:32:27.812:V/PhoneStatusBar(28212):setLightsOn(真)
04-23 16:32:28.042:I/ActivityManager(28158):显示com.emobiletelecom/com.codinguser.android.contactpicker.contactsPicker活动:+599ms
04-23 16:32:28.192:V/PT(30108):顶部-PokeTALK
4-23 16:33:00.292:D/dalvikvm(28212):GC_并发释放396K,36%释放10580K/16391K,暂停14ms+8ms
4-23 16:33:24.102:D/dalvikvm(30108):释放189K的所有元素的GC,6%的自由元素12032K/12679K,暂停52ms
04-23 16:33:24.122:I/dalvikvm堆(30108):为1390096字节分配将堆(frag大小写)增长到13.159MB
04-23 16:33:24.232:D/dalvikvm(30108):GC_并发释放33K,6%释放13355K/14087K,暂停4ms+4ms
4-23 16:33:24.341:D/dalvikvm(30108):所有释放的0千,6%释放的13356K/14087K,暂停34毫秒
04-23 16:33:24.351:I/dalvikvm堆(30108):为1390096字节分配将堆(frag案例)增长到14.452MB

04-23 16:33:24.522:D/dalvikvm(30108):GC_CONCURRENT freed在启动活动C时,不应在活动B内调用finish()。活动B必须留下来接收活动C的结果

I call finish() on the following methods: onStop(), onKeyDown(back key clicked), finishFromChild()

我相信
finishFromChild()
就是活动B被意外关闭的地方<当子活动(在此假设中为C)调用
finish()
时,将调用code>finishFromChild()
。因此,当您不想关闭活动B时,此命令可能是关闭活动B的命令。

是否可以粘贴日志CAT错误日志a添加将结果发送到活动B的代码以及如何处理该结果的代码会更好!您是否使用任何意图标志来启动活动B?您使用什么标志(如果有)来启动活动?活动B是否会运行一段时间(等待用户输入?)或者它会立即启动活动C?您可以发布用于启动活动的相关代码位吗?他从未提到他在活动B中调用finish。短语“活动A(登录)启动活动B,然后完成();”在“启动活动B的代码”中有(一点)解释:谢谢大家-是的,我还没有完成活动B,它应该回到表格来听任何按钮点击。谢谢山姆。你真的很接近了。似乎startActivityForResult()调用了暂停和暂停,我在onStop()方法中有finish(),这也可以做到。为了澄清我的描述,在执行C.finish()时调用了B.finishFromChild()。因此,请确保您没有意外地在B.finishFromChild()内调用B.finish(),因为这也将关闭B。