1. 程式人生 > >安卓App登出登陸實現

安卓App登出登陸實現

一、Intent intent10=new Intent(MainActivity.this,LoginActivity.class);
intent10.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent10);
清空當前任務棧,建立新的任務棧,並跳轉至登陸介面。
二、

做一個Android App專案,需要點選App登出按鈕實現登出功能。

方法:

    1 設定LoginActivity為啟動Activity,即該Activity在App Task的棧底。

    2 在登出按鈕所在Activity處,如下方式啟動LoginActivity:

  1. getActivity().startActivity(new Intent(getActivity(), LoginActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));  

注意:Manifest中,LoginActivity不能靜態設定:android:launchMode="singleTask"。否則,登出功能實現了,但是,在桌面點選App圖示,會清空當前Task的工作狀態的Activity。

理解Android的Task

TargetActivity不是LoginActivity(不在棧底)時,銷燬TargetActivity棧下所有Activity的方法:

    我們知道intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);這個方法是把要啟動的activity在activity堆疊中上面所有activity給清空。如何將ActivityA在所在堆疊中下面所有的Activity清空?採取了一個比較笨的方法是先啟動當前Task堆疊最下面的Activity A並且帶上引數intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);。然後再啟動我想要的ActivityB,並且finish掉當前最底端的activityA。各位誰有更好的方法