无法完成活动

aks*_*nge 1 android onpause android-activity

在我的应用程序中,我有5个活动(不包括主要活动Im)以循环方式重复使用其他4个活动。

在我的每个活动(主要除外)的onPause()方法中,我都编写了Activityname.this.finish();。

当我结束第五项活动的周期并返回到主要活动时...

但是我的问题是当我结束主要活动时..而不是关闭应用程序,它进入了第三次活动。

我不知道到底是哪里出了问题。可能在使用db n的第三活动im中没有明确关闭它。这有问题吗?

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    PlayerDetails.this.finish();
}
Run Code Online (Sandbox Code Playgroud)

我正在使用此onPause()方法

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    // TODO Auto-generated method stub
    if (keyCode==KeyEvent.KEYCODE_BACK){
        AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this);
        alert.setIcon(R.drawable.ic_launcher);
        alert.setTitle(R.string.app_name);
        alert.setMessage("Really Exit?");
        alert.setPositiveButton("Yes", new DialogInterface.OnClickListener(){
            @Override
            public void onClick(final DialogInterface dialog, final int which) {
                    MainActivity.this.finish();
                    dialog.dismiss();
                    }
        });
        alert.setNegativeButton("No", new DialogInterface.OnClickListener(){
            @Override
            public void onClick(final DialogInterface dialog, final int which) {
                    dialog.dismiss();
                    }
        });
        try{
        AlertDialog dialog = alert.create();
        dialog.show();
        }
        catch(Exception e){
            e.printStackTrace();
        }
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

这是我关闭应用程序的mainActivity方法

Ran*_*jit 5

您可以使用标志,而不是finish()在每个活动中每次都调用。当您启动一个新的Activity时,只需使用,FLAG_ACTIVITY_CLEAR_TASK其后FLAG_ACTIVITY_NEW_TASK使用,Intent它会清除堆栈缓冲区并以新的身份启动Activity。就像是 ..

  Intent intent = new Intent(current_context, destination_activity.class);
  intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK);
  startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

您可以在此对话中找到有关标志的更多信息。