0

我有 2 个活动,AB

A 使用意图和请求代码调用 B -

startActivityForResult(i,123);

...后来我想让 A 停止 B 然后它自己,所以在 AI 中

finishActivity(123);
finish();  // finish itself

......但B没有停止!但是,如果我在所有 onStop 和 onDestroy 处设置断点并在调试器中单步执行,则一切正常,两个活动都消失了。(这表明时间或比赛条件)

但是,如果我注释掉 A 的 finish() ...

finishActivity(123);
// finish();  // finish itself

B 确实完成了,但 A 没有完成,因为它的完成已被取消。让一项活动完成它创建的另一项活动然后自行完成的正确方法是什么?

提前致谢。

4

1 回答 1

3

看看这是否有效:

finishActivity(123);
runOnUiThread(new Runnable() {
    public void run() {
        finish();
    }
});

我建议这样做的原因是,我认为调用 tofinish()并没有给finishActivity(123)它机会做它的事情。通过调用runOnUiThread,调用finish()将发生在 UI 消息队列的下一个循环中。

于 2012-04-12T20:42:23.460 回答