Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在意图加载时清除后堆栈_Android_Back Stack - Fatal编程技术网

Android 如何在意图加载时清除后堆栈

Android 如何在意图加载时清除后堆栈,android,back-stack,Android,Back Stack,我的应用程序中有一个登录系统,我希望这样,一旦用户登录到他们的帐户,后台堆栈就会被清除,因此他们无法看到登录活动,除非他们单击主活动中的注销按钮。我将如何做到这一点 任何帮助都将不胜感激 使用finish()。它也将从堆栈中移除 Intent i = new Intent(this, YourAccountActivity.class); startActivity(i); // destroying your current activity finish(); 如果不想将此活动放入堆栈中

我的应用程序中有一个登录系统,我希望这样,一旦用户登录到他们的帐户,后台堆栈就会被清除,因此他们无法看到登录活动,除非他们单击主活动中的注销按钮。我将如何做到这一点

任何帮助都将不胜感激

使用
finish()。它也将从堆栈中移除

Intent i = new Intent(this, YourAccountActivity.class);
startActivity(i);

// destroying your current activity
finish();
如果不想将此活动放入堆栈中,也可以使用

AndroidManifest.xml中的android:noHistory=“true”

更改活动时,此活动将不在堆栈中

值“true”表示活动不会留下历史记录 跟踪。它不会保留在任务的活动堆栈中,因此 用户将无法返回到它

另一种选择是使用IntentFlags

Intent i = new Intent(this, YourAccountActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
使用
finish()。它也将从堆栈中移除

Intent i = new Intent(this, YourAccountActivity.class);
startActivity(i);

// destroying your current activity
finish();
如果不想将此活动放入堆栈中,也可以使用

AndroidManifest.xml中的android:noHistory=“true”

更改活动时,此活动将不在堆栈中

值“true”表示活动不会留下历史记录 跟踪。它不会保留在任务的活动堆栈中,因此 用户将无法返回到它

另一种选择是使用IntentFlags

Intent i = new Intent(this, YourAccountActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
使用
finish()。它也将从堆栈中移除

Intent i = new Intent(this, YourAccountActivity.class);
startActivity(i);

// destroying your current activity
finish();
如果不想将此活动放入堆栈中,也可以使用

AndroidManifest.xml中的android:noHistory=“true”

更改活动时,此活动将不在堆栈中

值“true”表示活动不会留下历史记录 跟踪。它不会保留在任务的活动堆栈中,因此 用户将无法返回到它

另一种选择是使用IntentFlags

Intent i = new Intent(this, YourAccountActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
使用
finish()。它也将从堆栈中移除

Intent i = new Intent(this, YourAccountActivity.class);
startActivity(i);

// destroying your current activity
finish();
如果不想将此活动放入堆栈中,也可以使用

AndroidManifest.xml中的android:noHistory=“true”

更改活动时,此活动将不在堆栈中

值“true”表示活动不会留下历史记录 跟踪。它不会保留在任务的活动堆栈中,因此 用户将无法返回到它

另一种选择是使用IntentFlags

Intent i = new Intent(this, YourAccountActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);

如果希望同时手动完成两个活动,则可以使用ApplicationContext类和该定义中的

MyApplicationClass.java

public Activity homeActivity = null;
public Activity otherActivity = null;
启动Homeactivity时,可以在onCreate()方法中执行以下操作:

HomeActivity.java

private MyApplicationClass myApplication = null;

   myApplication = (MyApplicationClass )getApplicationContext();

   myApplication.homeActivity = HomeActivity.this;
private MyApplicationClass myApplication = null;

       myApplication = (MyApplicationClass )getApplicationContext();

       myApplication.otherActivity = otheractivity.this;
在otheractivity的onCreate()方法中相同:

otheractivity.java

private MyApplicationClass myApplication = null;

   myApplication = (MyApplicationClass )getApplicationContext();

   myApplication.homeActivity = HomeActivity.this;
private MyApplicationClass myApplication = null;

       myApplication = (MyApplicationClass )getApplicationContext();

       myApplication.otherActivity = otheractivity.this;
当你想同时完成家庭活动和其他活动时 你可以这样结束

myApplication.homeActivity.finish();
myApplication.otherActivity.finish();

如果希望同时手动完成两个活动,则可以使用ApplicationContext类和该定义中的

MyApplicationClass.java

public Activity homeActivity = null;
public Activity otherActivity = null;
启动Homeactivity时,可以在onCreate()方法中执行以下操作:

HomeActivity.java

private MyApplicationClass myApplication = null;

   myApplication = (MyApplicationClass )getApplicationContext();

   myApplication.homeActivity = HomeActivity.this;
private MyApplicationClass myApplication = null;

       myApplication = (MyApplicationClass )getApplicationContext();

       myApplication.otherActivity = otheractivity.this;
在otheractivity的onCreate()方法中相同:

otheractivity.java

private MyApplicationClass myApplication = null;

   myApplication = (MyApplicationClass )getApplicationContext();

   myApplication.homeActivity = HomeActivity.this;
private MyApplicationClass myApplication = null;

       myApplication = (MyApplicationClass )getApplicationContext();

       myApplication.otherActivity = otheractivity.this;
当你想同时完成家庭活动和其他活动时 你可以这样结束

myApplication.homeActivity.finish();
myApplication.otherActivity.finish();

如果希望同时手动完成两个活动,则可以使用ApplicationContext类和该定义中的

MyApplicationClass.java

public Activity homeActivity = null;
public Activity otherActivity = null;
启动Homeactivity时,可以在onCreate()方法中执行以下操作:

HomeActivity.java

private MyApplicationClass myApplication = null;

   myApplication = (MyApplicationClass )getApplicationContext();

   myApplication.homeActivity = HomeActivity.this;
private MyApplicationClass myApplication = null;

       myApplication = (MyApplicationClass )getApplicationContext();

       myApplication.otherActivity = otheractivity.this;
在otheractivity的onCreate()方法中相同:

otheractivity.java

private MyApplicationClass myApplication = null;

   myApplication = (MyApplicationClass )getApplicationContext();

   myApplication.homeActivity = HomeActivity.this;
private MyApplicationClass myApplication = null;

       myApplication = (MyApplicationClass )getApplicationContext();

       myApplication.otherActivity = otheractivity.this;
当你想同时完成家庭活动和其他活动时 你可以这样结束

myApplication.homeActivity.finish();
myApplication.otherActivity.finish();

如果希望同时手动完成两个活动,则可以使用ApplicationContext类和该定义中的

MyApplicationClass.java

public Activity homeActivity = null;
public Activity otherActivity = null;
启动Homeactivity时,可以在onCreate()方法中执行以下操作:

HomeActivity.java

private MyApplicationClass myApplication = null;

   myApplication = (MyApplicationClass )getApplicationContext();

   myApplication.homeActivity = HomeActivity.this;
private MyApplicationClass myApplication = null;

       myApplication = (MyApplicationClass )getApplicationContext();

       myApplication.otherActivity = otheractivity.this;
在otheractivity的onCreate()方法中相同:

otheractivity.java

private MyApplicationClass myApplication = null;

   myApplication = (MyApplicationClass )getApplicationContext();

   myApplication.homeActivity = HomeActivity.this;
private MyApplicationClass myApplication = null;

       myApplication = (MyApplicationClass )getApplicationContext();

       myApplication.otherActivity = otheractivity.this;
当你想同时完成家庭活动和其他活动时 你可以这样结束

myApplication.homeActivity.finish();
myApplication.otherActivity.finish();

首先谢谢你的快速回复。我真的很感谢你的帮助。我确实有一个问题:如果在主要活动之前我有两个活动,并且我想同时清除这两个活动,会怎么样?非常感谢!这超出了。。。非常感谢。我现在觉得我已经很好地理解了这个问题。首先谢谢你的快速回复。我真的很感谢你的帮助。我确实有一个问题:如果在主要活动之前我有两个活动,并且我想同时清除这两个活动,会怎么样?非常感谢!这超出了。。。非常感谢。我现在觉得我已经很好地理解了这个问题。首先谢谢你的快速回复。我真的很感谢你的帮助。我确实有一个问题:如果在主要活动之前我有两个活动,并且我想同时清除这两个活动,会怎么样?非常感谢!这超出了。。。非常感谢。我现在觉得我已经很好地理解了这个问题。首先谢谢你的快速回复。我真的很感谢你的帮助。我确实有一个问题:如果在主要活动之前我有两个活动,并且我想同时清除这两个活动,会怎么样?非常感谢!这超出了。。。非常感谢。我现在觉得我对后堆栈有了很好的理解。