Android 无法完成活动

Android 无法完成活动,android,android-activity,onpause,Android,Android Activity,Onpause,在我的应用程序中,我有5个活动,不包括主要活动Im,以循环方式重复使用其他4个活动 在除main onPause方法外的每个活动中,我都编写了Activityname.this.finish 当我在第五次活动结束循环并返回主要活动时 但我的问题是当我结束主要活动时。。不是关闭应用程序,而是进入第三个活动 我不知道到底哪里出了问题。可能在第三个活动im中使用db n未明确关闭它。这是个问题吗 @Override protected void onPause() { // TODO Auto

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

在除main onPause方法外的每个活动中,我都编写了Activityname.this.finish

当我在第五次活动结束循环并返回主要活动时

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

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

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    PlayerDetails.this.finish();
}
我正在使用的这个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;
}
这是我关闭应用程序的mainActivity方法,您可以使用它来代替每次在每个活动中调用finish。启动新活动时,只需使用FLAG_Activity_CLEAR_TASK,然后使用FLAG_Activity_new_TASK,目的是清除堆栈缓冲区并作为新的活动启动。类似于

  Intent intent = new Intent(current_context, destination_activity.class);
  intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK);
  startActivity(intent);
您可以在此中找到有关标志的更多信息。

您可以在每个活动中使用,而不是每次都调用finish。启动新活动时,只需使用FLAG_Activity_CLEAR_TASK,然后使用FLAG_Activity_new_TASK,目的是清除堆栈缓冲区并作为新的活动启动。类似于

  Intent intent = new Intent(current_context, destination_activity.class);
  intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK);
  startActivity(intent);

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

使用onStop覆盖方法,而不是使用onPause,由于某些原因,onPause可能不会被调用,但onStop会被调用

@Override
protected void onStop() {
     // TODO Auto-generated method stub
     super.onPause();
     finish();
}

使用onStop覆盖方法而不是使用onPause,由于某些原因,onPause可能不会被调用,但onStop会被调用

@Override
protected void onStop() {
     // TODO Auto-generated method stub
     super.onPause();
     finish();
}

你能写下一些代码片段吗?试着给我们一些代码,并在你的主要活动中检查按钮出口,按钮定义是否包含任何指向第三个活动的意图链接?或者只是简单的system.kill或finish或android.process.os.killandroid.process.os.kill.mypid[将它们视为伪,搜索正确的格式my bad我现在不记得了]@akshaybhanage只需调用finish;当你开始下一个活动时,但当你从主活动转到任何活动时不要调用它。只要在你从一个活动转到另一个活动时完成现有的活动。是的,我正在使用它。但是为什么要在结束主活动时进行第三个活动?请写下一些代码片段?试着给我们一些代码,并检查主活动中的按钮出口,该按钮定义是否包含任何指向第三个活动的意图链接?或者只是简单的system.kill或finish或android.process.os.killandroid.process.os.kill.mypid[将它们视为伪,搜索正确的格式my bad我现在不记得了]@akshaybhanage只需调用finish;当你开始下一个活动时,但当你从主活动转到任何活动时不要调用它。只要在你从一个活动转到另一个活动时完成现有的活动。是的,我正在使用它。但为什么要在结束mainActivity时进行第三次活动