android活动管理器,Android 中管理所有的 Acyivity 活动
我们在 App 中,通常会打开很多个任务栈,如果我们要退出 App,要点击返回键一步步的退出?有没有更简单的方法吗?答案是有的,我们创建一个 Activity 管理器,来统一管理 Activity。
新建一个 ActivityCollectior 类自作为活动管理器:
public class ActivityCollector {
/**
* 创建一个集合保存
*/
public static List activities = new ArrayList<>();
/**
* 添加 Activity
* @param activity
*/
public static void addActivity(Activity activity){
activities.add(activity);
}
/**
* 移除 Activity
* @param activity
*/
public static void removeActivity(Activity activity){
activities.remove(activity);
}
/**
* 移除所有 Activity
*
*/
public static void finishAll(){
for (Activity activity:activities){
if (!activity.isFinishing()){
activity.finish();
}
}
activities.clear();
}
}
创建一个基类,BaseActivity,让所有的 Activity 继承它。
public class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//添加创建的 Activity
ActivityCollector.addActivity(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
//移除创建的 Activity
ActivityCollector.removeActivity(this);
}
}
随便一个 Activity 就可以退出 App,通过调用:
ActivityCollector.finishAll();
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second2);
ButterKnife.bind(this);
init();
}
private void init() {
tvValue.setText("这是第三个页面");
}
@OnClick({R.id.bt1, R.id.bt2})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.bt1:
//退出App
ActivityCollector.finishAll();
break;
case R.id.bt2:
break;
default:
}
}
/**
* Activity页面跳转建议这样写
* @param secondActivity
*/
public static void launch(SecondActivity secondActivity) {
Intent intent = new Intent(secondActivity,ThirdActivity.class);
secondActivity.startActivity(intent);
}
}
launch()这样写的好处:
1.别的 Activity 可以一句话调用。
2.可以清晰的看到传递过来的参数,直接接受即可(重点)。
android活动管理器,Android 中管理所有的 Acyivity 活动相关推荐
- android fragment 管理器,Android Fragment 與 Fragment管理器
Android Fragment 與 Fragment管理器 首先談談Fragement的需求 過去開發人員認為界面之間的跳轉只需要使用多個activity組成就行了: 例如下圖中,在Activity ...
- 运行android sdk管理器,Android SDK 安装配置
Android SDK 可以通过 Android Command line tools(叫命令行工具或 SDK 工具)手动安装,也可以让 Android Studio 自动帮你下载安装,这里详细描述手 ...
- android 事件管理器,Android输入管理InputManager之读一次事件的流程
流程图如下所示: 读一次事件的流程.png 读取线程InputReaderThread执行InputReader#loopOnce一次 void InputReader::loopOnce() { i ...
- android 铃声管理器,android RingtoneManager 铃声管理器
获取默认铃声Uri/ Uri String Uri sound = RingtoneManager.getDefaultUri(type); (type = RingtoneManager.TYPE_ ...
- Android时间触发,设置闹钟管理器Android中的时间 - 立即触发闹钟
这里我试图通过使用AlarmManger类设置闹钟.它与我工作正常,但当我设置闹钟时间后小时或分钟时间选择器,它会立即启动时,我保存该报警.闹钟.我需要警报熄灭,直到我设定时间. 下面是我的代码正在工 ...
- android Activity管理器
android Activity管理器 应用场景 管理活动的Activity,可实现将一个activity添加到管理器.得到保存在管理器中的Activity对象.返回管理器的Activity是否为空. ...
- android sdk无法启动不了,无法启动Android SDK管理器
我无法启动android sdk管理器,我已经正确检查了sdk,jdk路径但无法解决此问题.当我开始在eclipse CONSOL Android SDK中管理器显示这些行:无法启动Android S ...
- 移动开发技术(Android)——实验2 Android布局管理器的应用
移动开发技术(Android)--实验2 Android布局管理器的应用 一.实验目的 二.实验内容 (一)创建一个Android项目,名称为"shiyan0201_专业_×××" ...
- 【android编程】 第三讲-Android布局管理器
android编程 第三讲 Android布局管理器 文章目录 android编程 第三讲 Android布局管理器 约束布局管理器ConstraintLayout 线性布局管理器LinearLayo ...
最新文章
- ajax传值的url,JQuery ajax url传值与data传值的区别
- Codeforces 504 A (Round #285 div.1 A) Misha and Forest
- 编程字典keras.layers API方法
- 使用POI创建word表格-在表格单元格中创建子表格
- 让Linux系统崩溃最快速的方法
- VTK:PolyData之LinearExtrusion
- CompletableFuture计算完成时回调方法
- bzoj 1232: [Usaco2008Nov]安慰奶牛cheer【最小生成树】
- 谷歌用算力爆了一篇论文,解答有关无限宽度网络的一切
- 逻辑运算和作用域的问题
- 浅析Mysql的隔离级别及MVCC
- 2019年1月30日
- 如何正确使用RS485半双工芯片
- 第3-2课:用三个水桶等分 8 升水的问题
- Cache tier使用文档
- 中国标准时间转换成DateTime
- [转载]Malcolm的新书:Outliers
- VScode+keil插件-取代keil开发不要太爽了
- Vue-cli构建步骤
- 人物专访|大家好,我是橡树,研究车联网安全