1. 程式人生 > >活動3(活動中的一些技巧)

活動3(活動中的一些技巧)

一.判斷當前介面屬於哪個活動

建立一個普通的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();