第1行コードactivity追記

1740 ワード

アクティビティの管理(activity):


すべてのアクティビティ(activity)を管理するための専門的なコレクションを作成します.簡単な例:
public class ActivityCollector {
    public static List activities = new ArrayList();
    public static void addActivity(Activity activity) {
        activities.add(activity);
    }
    public static void removeActivity(Activity activity) {
        activities.remove(activity);
    }
    public static void finishAll() {
        for(Activity activity : activities) {
            if(!activity.isFinishing()) {
                activity.finish();
            }
        }
    }
}

そしてBaseActivityで呼び出す
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    
    ActivityCollector.addActivity(this);
}
@Override
protected void onDestroy() {
    super.onDestroy();
    ActivityCollector.removeActivity(this);
}

アプリケーションを直接終了する必要がある場所で使用
ActivityCollector.finishAll();

もちろん、すべてのアクティブなコードを破棄した後、現在のプロセスを殺したコードを加えて、プログラムが完全に終了することを保証することもできます.

アクティビティの開始


各アクティビティにactionStart()メソッドを追加し、このメソッドでジャンプを実現し、アクティビティに必要なデータはすべてメソッドパラメータに反映されます.例:
public class TestActivity extends BaseActivity() {
    public static void actionStart(Context context, String data1, String data2) {
        Intent intent = new Intent(context, TestActivity .class);
        intent.putExtra("param1", data1);
        intent.putExtra("param2", data2);
        context.startActivity(intent);
     }
     ......
}

TestActivityアクティビティを開始すると、次のようになります.
TestActivity.actionStart(context, "data1", "data2");