[英]Activity doesn't fire the onStop event
My code list as follow: 我的代码清单如下:
public class MainActivity extends Activity{
private String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d(TAG, "onCreate");
}
@Override
public void onBackPressed() {
Log.d(TAG, "onBackPressed");
moveTaskToBack(true);
}
@Override
protected void onStart() {
Log.d(TAG, "onStart");
super.onStart();
}
@Override
protected void onResume() {
Log.d(TAG, "onResume");
super.onResume();
}
@Override
protected void onPause() {
Log.d(TAG, "onPause");
super.onPause();
}
@Override
protected void onStop() {
Log.d(TAG, "onStop");
super.onStop();
}
@Override
protected void onDestroy() {
Log.d(TAG, "onDestroy");
super.onDestroy();
}
}
My test result is: 我的测试结果是:
11-29 15:20:09.850 4626 4626 D MainActivity: onCreate
11-29 15:20:09.851 4626 4626 D MainActivity: onStart
11-29 15:20:09.852 4626 4626 D MainActivity: onResume
11-29 15:20:18.887 4626 4626 D MainActivity: onBackPressed
11-29 15:20:18.909 4626 4626 D MainActivity: onPause
11-29 15:20:19.718 4626 4626 D MainActivity: onStop
11-29 15:20:29.471 4626 4626 D MainActivity: onStart
11-29 15:20:29.471 4626 4626 D MainActivity: onResume
11-29 15:20:32.030 4626 4626 D MainActivity: onBackPressed
11-29 15:20:32.050 4626 4626 D MainActivity: onPause
My Test Step: 我的测试步骤:
Enter any 3rd App's Ui; 输入任何第3个应用的用户界面;
Use eclipse to run or debug my app, then my app will cover the 3rd app and be shown on the top; 使用eclipse运行或调试我的应用程序,然后我的应用程序将覆盖第3个应用程序并显示在顶部;
Then press back-key many times as quickly as I can and go to desktop (home launcher). 然后,尽可能快地多次按返回键,然后转到台式机(家庭启动器)。
If the result has onStop, maybe your press not so quick and then try. 如果结果为onStop,则可能不是很快就按下,然后尝试。
Now I want to know whether the activity is visuable, but sometimes the onStop can't be called, please help me. 现在,我想知道活动是否可以进行,但是有时无法调用onStop,请帮助我。 thank you!
谢谢!
Remove moveTaskToBack(true);
删除
moveTaskToBack(true);
And add super.onBackPressed();
并添加
super.onBackPressed();
@Override
public void onBackPressed() {
Log.d(TAG, "onBackPressed");
super.onBackPressed();
}
Edit 编辑
In one second , let it not press for twice . 一秒钟之内,不要按两次。
private long lastTime;
@Override
public void onBackPressed() {
long currentTime = System.currentTimeMillis();
if (currentTime - lastTime < 1000) {
moveTaskToBack(true);
} else {
Log.e("TAG", "pressed again");
lastTime = currentTime;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.