我使用以下代码调出SignInActivity,同时清除所有其他代码:
Intent intent = new Intent(activity, SignInActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
activity.startActivity(intent);
我的应用有多个标签,而SignInActivity是标签活动之一:
TabHost tabHost = (TabHost)findViewById(android.R.id.tabhost);
tabHost.setup(getLocalActivityManager());
tabHost.addTab(tabHost.newTabSpec("home").setIndicator(createTabView(this, "Home", R.drawable.home)).setContent(new Intent(MainActivity.this, HomeActivity.class)));
tabHost.addTab(tabHost.newTabSpec("lists").setIndicator(createTabView(this, "My List", R.drawable.shopping_list)).setContent(new Intent(MainActivity.this, ShoppingListActivity.class)));
tabHost.addTab(tabHost.newTabSpec("stores").setIndicator(createTabView(this, "Stores", R.drawable.store_finder)).setContent(new Intent(MainActivity.this, StoreActivity.class)));
tabHost.addTab(tabHost.newTabSpec("my_card").setIndicator(createTabView(this, "My card", R.drawable.more_card)).setContent(new Intent(MainActivity.this, SignInActivity.class)));
tabHost.addTab(tabHost.newTabSpec("more").setIndicator(createTabView(this, "More", R.drawable.more)).setContent(new Intent(MainActivity.this, MoreActivity.class)));
在执行时,运行了TransactionActivity,并且从事务活动中调用了代码(上面显示的第一个代码块)。我希望清除事务活动,并将原始的SignInActivity置于顶端。但我实际观察到的是,一个新的SignInActivity已经开始,而不仅仅是让原始的一个;当我点击后退按钮时,交易活动显示出来,表明它没有被清除;当我再次点回时,原来的SignInActivity显示出来。
答案 0 :(得分:0)
要清除已启动活动的整个历史记录,然后从新鲜活动开始活动,请使用以下代码:
Intent i = new Intent(getActivity(), LoginActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
我个人在用户退出应用程序时使用它,然后清除所有需要登录的活动的历史记录并再次显示登录活动。