如何保存当前活动状态并在任何时间重新加载

时间:2016-07-25 06:58:45

标签: java android android-studio android-intent android-activity

有4个名字的活动:main,p1,p2,p3 想要用户在p1或p2或p3时出来退出按钮并在主活动中再次启动应用程序再次使用恢复按钮可以进行同样的活动了。 有我的代码:主要活动:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_page);


        Button button2=(Button)findViewById(R.id.btn2);



      button2.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
              Intent intent=new Intent(MainActivity.this,p1.class);
              startActivity(intent);
          }
      });
    }
}

xml:

 <Button
        android:text="resume"
        android:layout_width="wrap_content"
        android:id="@+id/btn1"
        android:layout_height="wrap_content" />

    <Button
        android:text="next"
        android:id="@+id/btn2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

活动p1:

public class p1 extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.p1);

        Button button = (Button) findViewById(R.id.btne);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent(p1.this,p2.class);
                startActivity(intent);
            }
        });

        Button button1=(Button)findViewById(R.id.btne2);
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent(p1.this,MainActivity.class);
                startActivity(intent);
            }
        });

        }
    }

的xml:

 <Button
        android:text="next"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/btne"/>

    <Button
        android:text="go in main"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/btne2"/>

和p2,p3与p1相同。请帮助,如果有人可以

2 个答案:

答案 0 :(得分:1)

如果您的主要活动开始所有其他活动,那么您只需致电finish();完成它们,您的主要活动将重新开始。所以不要在p1中编写代码:

Intent intent=new Intent(p1.this,MainActivity.class);
startActivity(intent);

写:

p1.this.finish();

另一方面,如果您要关闭所有已打开的活动,直到您的主要活动(即您有MainActivity - &gt; p1 - &gt; p2,并且您只想要保留MainActivity,p1和p2完成)那么使用此代码:

Intent intent = new Intent(getApplicationContext(), MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

答案 1 :(得分:0)

在MainActivity中,声明一个全局变量resumeIntent:

public static Intent resumeIntent = null;

单击“恢复”按钮(在MainActivity中)时,应该转到上一个活动,按如下方式实现click事件:

        if (resumeIntent != null) {
            startActivity(resumeIntent);
        } else {
            Toast.makeText(MainActivity.this, "No Intent to resume !", Toast.LENGTH_SHORT).show();
        }

在那些活动P1,P2和P3中,Go To Main按钮的代码如下所示:

btnGoToMain.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                MainActivity.resumeIntent = getIntent();
                finish();
            }
        });

希望它有所帮助!