我有2项活动, A 和 B 。
A使用意图和请求代码调用B -
startActivityForResult(i,123);
...后来我希望A停止B然后自己,所以在A中我做了
finishActivity(123);
finish(); // finish itself
......但B不会停止!但是,如果我在所有的onStop和onDestroy上设置断点并在调试器中单步执行,一切都会完美运行,两个活动都会消失。 (这表明时间或种族条件)
但是,如果我评论完A(...)
finishActivity(123);
// finish(); // finish itself
B确实完成但是A没有完成,因为它的完成已被取消。让一个活动完成另一个活动的正确方法是什么,然后自己完成?
提前致谢。
答案 0 :(得分:3)
看看是否有效:
finishActivity(123);
runOnUiThread(new Runnable() {
public void run() {
finish();
}
});
我建议这样做的原因是我认为对finish()
的调用并没有让finishActivity(123)
有机会做到这一点。通过调用runOnUiThread
,对finish()
的调用将在下一个循环中通过UI消息队列进行。