此处UI界面并不会写的很好看,就是一个简单的类似于强制下线功能,要用到的类如下:
这些类的主要做用:
- ActivityCollector:用来管理Activity,添加和删除,全部销毁。
- BaseActivity:这是一个中间类,用来实现将创建好的Activity添加到ActivityCollector中,此类继承AppCompatActivity,并且广播接收器也是写在这个类中的。
- LoginActivity:主要功能就是一个登录界面的实现。
- MainActivity:点击按钮发送一条广播。
此处要注意的是MainActivity,LoginActivity都是继承BaseActivity的,因为BaseActivity是继承AppCompatActivity的,所以并不会影响这两个活动的正常使用。
将主活动设置为LoginActivity,就是应用启动打开的第一个界面是LoginActivity的内容。
代码如下:
ActivityCollector:
/**
* 此类用来管理活动
*/
public class ActivityCollector {
// 创建一个Activity的列表
public static List<Activity> activities = new ArrayList<>();
// 添加activity到activities中去
public static void addActivity(Activity activity) {
activities.add(activity);
}
// 将activity从activities中移除
public static void removeActivity(Activity activity) {
activities.remove(activity);
}
// 销毁所有的Activity,也就是将activities中的activity都移除
public static void finishAll() {
for (Activity activity : activities) {
if (!activity.isFinishing()) {
activity.finish();
}
}
}
}
BaseActivity:
/**
* 将此类做为所有Activity的父类,就可以轻松的管理Activity了
*/
public class BaseActivity extends AppCompatActivity {
private ForceOfflineReceiver forceOfflineReceiver;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//将继承BaseActivity类的Activity添加到ActivityCollector的列表中去
ActivityCollector.addActivity(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
// 将销毁的Activity从列表中移除