San*_*ung 9 android back android-lifecycle
我希望我的Android应用程序的用户在按某个活动时退出我的应用程序.可以这样做吗?
一个好方法是等待一秒钟
private boolean _doubleBackToExitPressedOnce = false;
@Override
public void onBackPressed() {
Log.i(TAG, "onBackPressed--");
if (_doubleBackToExitPressedOnce) {
super.onBackPressed();
return;
}
this._doubleBackToExitPressedOnce = true;
Toast.makeText(this, "Press again to quit", Toast.LENGTH_SHORT).show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
_doubleBackToExitPressedOnce = false;
}
}, 2000);
}
Run Code Online (Sandbox Code Playgroud)
您可以尝试这样的事情(显示确认退出的对话框):
@Override
public void onBackPressed() {
new AlertDialog.Builder(this).setIcon(android.R.drawable.ic_dialog_alert).setTitle("Exit")
.setMessage("Are you sure you want to exit?")
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
System.exit(0);
}
}).setNegativeButton("No", null).show();
}
Run Code Online (Sandbox Code Playgroud)
必须注意的是,在下面的评论中提到不建议使用System.exit退出应用程序.一种更"正确"的方式可能是广播一个背压意图,如果您的应用程序的活动收到该意图完成自己.
你可以尝试这个
public void onBackPressed() {
moveTaskToBack(true);
}
Run Code Online (Sandbox Code Playgroud)
把它放在你Manifest的每个活动中:
<activity android:name=".MyActivity"
android:noHistory="true">
</activity>
Run Code Online (Sandbox Code Playgroud)
在您的背面按下Activity
:
@Override
protected void onBackPressed() {
if (this.isFinishing()){
finish();
super.onBackPressed();
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
17854 次 |
最近记录: |