Activityの破棄
1759 ワード
単一のアクティビティについて、後退キーを押すか、アクティビティでfinish()メソッドを呼び出すと、アクティビティを破棄できます.ここでは、主にすべてのアクティビティを一度に破棄する方法について説明します.
1 activityを管理するツールクラスを作成する
2 BaseActivityをすべてのアクティビティの親として作成し、onCreateメソッドとonDestoryメソッドを書き換えるとともに、superメソッドを忘れないでください.superメソッドを追加しないとエラーが発生します.
3各アクティビティはBaseActivityを継承し、onCreateでsuperを呼び出します.onCreate、onDestoryでsuperを呼び出します.onDestory
4すべてのアクティビティを終了する方法
必要な場所でActivity Collectorを呼び出します.exit()は、すべてのアクティビティを終了できます.
1 activityを管理するツールクラスを作成する
public class ActivityCollector {
public static List activities=new ArrayList<>();
public static void add(Activity activity)
{
activities.add(activity);
}
public static void delete(Activity activity)
{
activities.remove(activity);
}
public static void exit()
{
for(Activity activity:activities)
{
// activity
if(activity.isFinishing())
{
activity.finish();
}
}
}
}
2 BaseActivityをすべてのアクティビティの親として作成し、onCreateメソッドとonDestoryメソッドを書き換えるとともに、superメソッドを忘れないでください.superメソッドを追加しないとエラーが発生します.
public class BaseActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// list
ActivityCollector.add(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
// list
ActivityCollector.delete(this);
}
}
3各アクティビティはBaseActivityを継承し、onCreateでsuperを呼び出します.onCreate、onDestoryでsuperを呼び出します.onDestory
public class testActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
}
@Override
protected void onDestroy() {
super.onDestroy();
}
}
4すべてのアクティビティを終了する方法
必要な場所でActivity Collectorを呼び出します.exit()は、すべてのアクティビティを終了できます.
ActivityCollector.exit()