我的应用程序中有一个登录系统,我想这样做,一旦用户登录到他们的帐户,后台堆栈被清除,所以他们看不到登录活动,除非他们点击日志主要活动中的按钮。我该如何做到这一点?
任何帮助将不胜感激。
答案 0 :(得分:2)
使用finish()
方法在意图后销毁您的登录活动。它也将从堆栈中删除。
Intent i = new Intent(this, YourAccountActivity.class);
startActivity(i);
// destroying your current activity
finish();
如果您不想将此活动放入堆栈,也可以使用
android:noHistory="true"
中的 AndroidManifest.xml
更改活动时,此活动不会在堆栈中。
值“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);
答案 1 :(得分:1)
如果您想同时手动完成两个活动,那么您可以使用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;
相同的onotheractivity的onCreate()方法:
otheractivity.java
private MyApplicationClass myApplication = null;
myApplication = (MyApplicationClass )getApplicationContext();
myApplication.otherActivity = otheractivity.this;
当你想要在同一时间完成家庭活动和其他活动时 你可以这样完成..
myApplication.homeActivity.finish();
myApplication.otherActivity.finish();