1. 知晓当前是在哪一个活动
当接手别人写的项目时,了解是哪一个界面。
需要新建一个BaseActivity类,BaseActivity类继承自AppCompatActivity,并重写onCreate()方法,如下所示:
public class BaseActivity extends AppCompatActivity{
@Override
protected void onCreate(Bundle saveInstanceState){
super.onCreate(saveInstanceState);
Log.d("BaseActivity", getClass().getSimpleName());
}
}
接下来我们需要让BaseActivity成为ActivityTest项目中所有活动的父类就可以了。
2. 随时随地退出程序
新建一个ActivityCollector类作为活动管理器,代码如下所示:
public class ActivityCollector{
public static List<Activity> 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();
}
}
}
}
在活动管理器中,我们通过一个List来暂存活动,然后提供了一个addActivity()方法用于想List中添加一个活动,提供了一个
removeActivity()方法用于从List中移除活动,最后提供了一个finishAll()方法用于将List中存储的活动全部销毁掉。
接下来修改BaseActivity中的代码,如下所示:
public class BaseActivity extends AppCompatActivity{
@Override
protected void onCreate(Bundle saveInstanceState){
super.onCreate(saveInstanceState);
Log.d("BaseActivity", getClass().getSimpleName());
ActivityCollector.addActivity(this);
}
@Override
protected void onDeatory(){
super.onDeatory();
ActivityCollector.removeActivity(this);
}
}
在BaseActivity的onCreate()方法中调用了ActivityCollector的addActivity()方法,表明将当前正在创建的活动添加到活动
管理器里。重写onDeatory()方法,并调用了ActivityCollector的removeActivity()方法,表明将一个马上要销毁的活动从活
动管理器里移除。
从此不管你想在什么地方退出程序,只需要调用ActivityCollector的finishAll()方法就可以了。
当然你还可以在销毁所有活动的代码后面再加上杀掉当前进程的代码,以保证程序完全退出,杀掉进程的代码如下所示:
android.os.Process.killProcess(android.os.Process.myPid());
当接手别人写的项目时,了解是哪一个界面。
需要新建一个BaseActivity类,BaseActivity类继承自AppCompatActivity,并重写onCreate()方法,如下所示:
public class BaseActivity extends AppCompatActivity{
@Override
protected void onCreate(Bundle saveInstanceState){
super.onCreate(saveInstanceState);
Log.d("BaseActivity", getClass().getSimpleName());
}
}
接下来我们需要让BaseActivity成为ActivityTest项目中所有活动的父类就可以了。
2. 随时随地退出程序
新建一个ActivityCollector类作为活动管理器,代码如下所示:
public class ActivityCollector{
public static List<Activity> 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();
}
}
}
}
在活动管理器中,我们通过一个List来暂存活动,然后提供了一个addActivity()方法用于想List中添加一个活动,提供了一个
removeActivity()方法用于从List中移除活动,最后提供了一个finishAll()方法用于将List中存储的活动全部销毁掉。
接下来修改BaseActivity中的代码,如下所示:
public class BaseActivity extends AppCompatActivity{
@Override
protected void onCreate(Bundle saveInstanceState){
super.onCreate(saveInstanceState);
Log.d("BaseActivity", getClass().getSimpleName());
ActivityCollector.addActivity(this);
}
@Override
protected void onDeatory(){
super.onDeatory();
ActivityCollector.removeActivity(this);
}
}
在BaseActivity的onCreate()方法中调用了ActivityCollector的addActivity()方法,表明将当前正在创建的活动添加到活动
管理器里。重写onDeatory()方法,并调用了ActivityCollector的removeActivity()方法,表明将一个马上要销毁的活动从活
动管理器里移除。
从此不管你想在什么地方退出程序,只需要调用ActivityCollector的finishAll()方法就可以了。
当然你还可以在销毁所有活动的代码后面再加上杀掉当前进程的代码,以保证程序完全退出,杀掉进程的代码如下所示:
android.os.Process.killProcess(android.os.Process.myPid());