2

如何在主活动后按时退出应用程序?我正在使用此代码,但它完成了主要活动并显示了后台堆栈中的其他活动。

@Override
    public void onBackPressed() {
        finish();
    }
4

10 回答 10

11

我尝试了这个及其对我的工作非常好,因为我正在开发应用程序,一旦会话过期,用户只能看到很少的视图并保持隐藏状态。

    @Override
    public void onBackPressed() {
        moveTaskToBack(true);
    }
于 2015-10-30T10:17:28.613 回答
4

您可以使用

android:noHistory="true" 在这样的活动标签下的清单中

    <activity 
        android:name=".MainActivity"
        android:noHistory="true">
    </activity>
于 2015-10-30T10:13:11.500 回答
3

尝试这个

@override
public void onBackPressed(){
Intent a = new Intent(Intent.ACTION_MAIN);
a.addCategory(Intent.CATEGORY_HOME);
a.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(a);
}
于 2015-10-30T10:08:21.833 回答
3

你也可以试试这个

@Override
    public void onBackPressed() {
       int pid = android.os.Process.myPid();
       android.os.Process.killProcess(pid);    
}
于 2015-10-30T10:08:33.420 回答
3

你可以试试这个:

@Override
    public void onBackPressed() {
        // TODO Auto-generated method stub

        new AlertDialog.Builder(Activityname.this)
        .setTitle("Title")
        .setMessage("Do you really want to exit?")
        .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) { 
                ActivityCompat.finishAffinity(Activityname.this);
                finish();   
            }
        })
        .setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) { 
                dialog.dismiss();
            }
        })
        .setIcon(android.R.drawable.ic_dialog_alert)
        .show();

    }

希望它能解决你的问题

于 2015-10-30T10:10:01.550 回答
1

已经问过了。最受欢迎的答案:

getActivity().finish();
System.exit(0);
于 2015-10-30T10:10:34.837 回答
0

您好尝试在 onBackPressed 中添加此代码:

getActivity().finish();
System.exit(0);
于 2015-10-30T10:09:00.120 回答
0
@Override
public void onBackPressed() {

    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage("Are you sure you want to Exit ?")
            .setCancelable(false)
            .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    moveTaskToBack(true);
                }
            })
            .setNegativeButton("No", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    dialogInterface.cancel();
                }
            });
    AlertDialog alertDialog = builder.create();
    alertDialog.show();
}
于 2020-04-19T04:39:01.590 回答
-1

尝试这个,

Intent intent = new Intent(UserProfile.this, Login.class)
                            .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
finish();
于 2015-10-30T10:28:14.880 回答
-2

尝试 public void onBackPressed() { finish(); Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); finish(); }

使用完成();从一项活动迁移到另一项活动后

于 2015-10-30T10:33:57.747 回答