【Android】退出多个Activity方法(三)
来源:互联网 发布:淘宝信用查询网站 编辑:程序博客网 时间:2024/06/11 18:58
之前介绍了两个退出多个Activity的方法了。链接在下面:
方法一:setFlags()方法
方法二:setResult()方法
接下来介绍第三种方法——自定义的一个类去管理打开的Activity。废话不多说直接上代码,如下:
public class MyApplication extends Application { private static Context myApplication; public static ArrayList<Activity> activities; @Override public void onCreate() { super.onCreate(); myApplication = getApplicationContext(); } /** * 添加Activity */ public static void addActivity(Activity activity) { if (activities == null) { activities = new ArrayList<Activity>(); } activities.add(activity); } /** * 删除集合中指定的Activity */ public static void removeActivity(Activity activity) { activities.remove(activity); } /** * 关闭所有的Activity,并清空集合 */ public static void finishAllActivity() { for (Activity activity : activities) { if (!activity.isFinishing()) { activity.finish(); } } activities.clear(); } public static Context getContext() { return myApplication; }}
自定义一个MyApplication类,其中实现的方法是:addActivity、removeActivity和finishAllActivity。
还是和之前一样有五个Activity,分别是BaseActivity、A、B、C和D,其中BaseActivity作为基类Activity,让其余四个Activity继承于它。BaseActivity和其余四个Activity代码如下:
/** *BaseActivity实现代码 */public class BaseActivity extends AppCompatActivity { private static final String TAG = "BaseActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d(TAG, getClass().getSimpleName());//打印出相应的Activity名称 MyApplication.addActivity(this);//将Activity添加到集合中 }}/** *A实现代码,其余类似 */ public class A extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.a_layout); Button btnA = (Button) findViewById(R.id.btn_a); btnA.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { startActivity(new Intent(A.this, B.class)); } }); }}
最后,在想要完全退出的地方,使用如下代码:
MyApplication.finishAllActivity();
方法步骤总结:
- 自定义一个类,用于管理打开的Activity,在类中定义一个集合用于存储打开的Activity,接下来实现添加Activity(list.add(Activity activity))、删除集合中指定的Activity(list.remove(Activity activity))和关闭所有Activity并清空集合(遍历整个集合,使用finish()关闭Activity,list.clear()清空集合)。
- 定义一个基类Activity,其他Activity继承于它。基类Activity中使用
自定义类名.addActivity(this);实现添加Activity到集合中。 - 退出时使用:自定义类名.finishAllActivity();实现退出多个Activity。
0 0
- 【Android】退出多个Activity方法(三)
- android退出多个activity方法整理
- 【Android】退出多个Activity方法(一)
- 【Android】退出多个Activity方法(二)
- 【Android】退出多个Activity方法(四)
- 【Android】退出多个Activity的方法(五)
- Android退出多个activity和单个activity的方法
- Android 退出多个Activity | 退出程序
- Android 退出多个Activity | 退出程序
- Android退出多个Activity
- Android应用开发多个activity完全退出程序方法
- android退出程序销毁多个Activity方法
- Android中退出多个Activity的方法
- Android中退出多个Activity的两个经典方法
- Android中退出多个Activity的两个经典方法
- Android中退出多个Activity的两个经典方法
- Android退出多个Activity的两个经典方法
- Android 中退出多个Activity的两个经典方法
- 0和 null
- 史上最全的MySQL基础教程(收藏)
- linuxx初级学习之swap分区练习题
- Markdown插入公式~最佳方案
- RecyclerView添加Item的点击事件
- 【Android】退出多个Activity方法(三)
- 生产环境实战spark (10)分布式集群 5台设备 SPARK集群 HistoryServer WEBUI不能打开问题解决 File file:/tmp/spark-events does not
- Linux常用的一些内核参数(调优)
- 面试算法题:二叉树的平衡性检测
- BlueROV-4: DroneKit, MAVLink and Companion Computers
- Leetcode 371(Java)
- 徒手启动jenkins-体会docker好处
- 一种跨域技术:JSONP
- luogu 1521-求逆序对