我遇到了一个场景,即isFinishing()返回false,但活动仍然退出。
场景中有Activity Abc,其中包含一个按钮。当用户单击该按钮时,将启动Activity Xyz。
现在在Abc活动中,我几乎同时点击了它上面的按钮和手机上的BACK按钮,在触摸Abc上的按钮后几秒钟后按下BACK按钮。我收到了以下日志消息:
09-30 17:32:41.424 I/Abc(20319): [onPause] com.example.Abc@40605928
09-30 17:32:41.424 D/Abc(20319): In onPause, this.isFinishing()=false
09-30 17:32:41.464 I/Xyz(20319): [onCreate] com.example.Xyz@405caf68
09-30 17:32:41.604 I/Xyz(20319): [onStart] com.example.Xyz@405caf68
09-30 17:32:41.644 I/Xyz(20319): [onResume]com.example.Xyz@405caf68
09-30 17:32:41.824 I/Abc(20319): [onStop] com.example.Abc@40605928
09-30 17:32:41.884 D/Abc(20319): [onDestroy] com.example.Abc@40605928
从上面的日志中我们可以看到,即使isFinishing()在onPause()中返回false,Abc活动也被破坏了。
我在onPause()中的代码是:
@Override
protected void onPause() {
super.onPause();
Log.d(TAG, "[onPause] " + this);
Log.d(TAG, "In onPause, this.isFinishing()=" + this.isFinishing());
}
这是Android中的错误吗?
感谢。
答案 0 :(得分:0)
我认为这是Android操作系统中的一个错误。 当一个活动在onPause()中时,操作系统应该忽略单击它的BACK按钮。