我使用下面的代码退出应用程序。
案例是,如果互联网不可用,则会显示对话框,提示互联网不可用,然后按确定。一旦用户按下确定,它就会关闭应用程序,但应用程序仍显示在最近的应用程序列表中。
以下是代码::
AlertDialog.Builder builder1 = new AlertDialog.Builder(context);
builder1.setTitle("Oops! Internet not available.");
builder1.setMessage("Connect to Internet and Restart App.");
builder1.setCancelable(true);
builder1.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory( Intent.CATEGORY_HOME );
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
startActivity(intent);
}
});
AlertDialog alert11 = builder1.create();
alert11.show();
使用上面的代码后,它仍显示在最近的应用列表中。
我已经尝试了下面的事情。
System.exit(0);
结束();
intent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
请告诉我如何从最近的应用列表中删除该应用。
答案 0 :(得分:2)
我想有很多方法可以从历史记录列表中删除最新的应用。
通过活动经理:
ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
if(am != null) {
List<ActivityManager.AppTask> tasks = am.getAppTasks();
if (tasks != null) {
tasks.get(0).finishAndRemoveTask();
}
}
通过manifesto.xml
<activity android:name=".Activity2" android:excludeFromRecents="true"></activity>
或通过意图
Intent intent = new Intent(Main.this, NewActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
startActivity(intent);
答案 1 :(得分:0)
您还可以在MainActivity
中执行以下操作:
@Override
public void finish(){
if(android.os.Build.VERSION.SDK_INT >= 21){
finishAndRemoveTask();
}
else{
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
startActivity(intent)
}
}