活動3(活動中的一些技巧)
阿新 • • 發佈:2018-11-08
一.判斷當前介面屬於哪個活動
建立一個普通的Java類,讓它繼承自AppCompatActivity,它不需要在AndroidManifest中註冊。重寫其中的onCreate()方法,如下所示:
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d("Base", getClass().getSimpleName());
}
然後讓該類成為其它所有Activity類的父類即可,現在當進入到一個活動的介面時,該活動的類名就會在Log中打印出來。
二.隨時退出程式
當我們的程式有時候需要一個登出或者退出功能時,就要實現隨時能夠退出程式的功能。
可以用一個專門的類來對所有活動進行管理,通過一個集合實現對活動的新增、移除和全部銷燬。
1.設計一個類作為活動的管理器,如下:
public class ActivityCollector { // 通過List儲存活動 public static List<Activity> activitys = new ArrayList<>(); /** * 向List中新增一個活動 */ public static void addActivity(Activity activity) { activitys.add(activity); } /** * 從List中移除一個活動 */ public static void removeActivity(Activity activity) { activitys.remove(activity); } /** * 將List中儲存的活動全部銷燬 */ public static void finishAll() { for (Activity activity : activitys) { if (!activity.isFinishing()) { activity.finish(); } } activitys.clear(); } }
2.在基類中對相應的新增和刪除活動進行操作,如下:
public class BaseActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d("Base", getClass().getSimpleName()); // 將正在建立的活動新增到活動的管理器中 ActivityCollector.addActivity(this); } @Override protected void onDestroy() { super.onDestroy(); // 將一個馬上要銷燬的活動從活動管理器中移除 ActivityCollector.removeActivity(this); } }
3.對活動的全部銷燬,比如說在某個介面中有個按鈕是退出,可以通過如下程式碼實現:
ActivityCollector.finishAll();