Android无尽的活动循环

时间:2016-04-26 10:13:53

标签: android performance android-activity override ondestroy

您好我的应用程序My image

中存在一个小问题

在我提供的图片中,您可以看到两个活动,每个活动一个按钮。当按下按钮1时,它将带您进入第二个活动,当按下按钮2时,它将带您进行一个完美的活动。问题是,如果我要连续按这些按钮在两者之间导航,那么大量的活动会像一条线一样形成,当按下后退按钮时,你会自动浏览所有开放的活动。

  1. 我的问题是我是否实施了onDestroy方法,如果是这样的话怎么办呢?

  2. 我可以覆盖后退按钮,让我直接回到第一个活动吗?

4 个答案:

答案 0 :(得分:1)

  

我的问题是我是否实现了onDestroy方法,如果是这样的话怎么办呢?

每当您转到下一个活动时,您都可以调用finish()

Intent intent = new Intent(Activity1.this, Activity2.class);
startActivity(intent);
finish();

Intent intent = new Intent(Activity2.this, Activity1.class);
startActivity(intent);
finish();
  

我可以覆盖后退按钮直接让我回到活动状态   一个,没有进一步?

Activity2,您可以在onBackPressed中呼叫onClick,如

    button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               onBackPressed();
            }
        });
}
@Override
public void onBackPressed(){
     // do what ever you want before you back to previous activity
     super.onBackPressed();
     // call super.onBackPressed(); or finish();
}

答案 1 :(得分:0)

实现如下所示的意图:

Intent intent = new Intent(getApplicationContext(), Home.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

当新活动开启时,之前的活动将被关闭。

答案 2 :(得分:0)

假设您将使用以下

进行第二项活动
 button1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
             Intent to_second=new Intent(FirstActivity.this,SecondActivity.class);
             startActivity(to_second);
        }
    });

现在在您的第二个活动中执行以下操作

button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
             finish();
            }
        });

button2将完成您的第二个活动并再次恢复您的第一个活动,您可以再次单击按钮1打开第二个活动,然后圆圈继续。

答案 3 :(得分:0)

嗯,您可以在launchMode="singleInstance"中同时开展AndroidManifest次活动。您可以通过onNewIntent()来电发送内容。

请勿致电super.onBackPressed(),因为它会导致finish()被调用,只需启动另一项活动。

如果您不需要重新创建活动,可以使用此解决方案,否则请使用CLEAR_TOP&等