这个问题一直困扰着我,试了n种方式,都不行,在网上搜了一圈,没有能用的:
1 ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
manager.killBackgroundProcesses("package");
不行
2 android.os.Process.killProcess(android.os.Process.myPid());
也不行
3 manager.restartPackage("package");
还是不行
于是我彻底郁闷了,今天研究了一下广播机制,发现是个好东东,能彻底解决这个问题,废话不说看代码:
首先为了方便,先写一个父类继承Activity,其他的Activity都继承此父类:
public class ApplicationActivity extends Activity { //写一个广播的内部类,当收到动作时,结束activity private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { finish(); } }; @Override public void onResume() { super.onResume(); //在当前的activity中注册广播 IntentFilter filter = new IntentFilter(); filter.addAction(Const.CLOSE_ACTION); this.registerReceiver(this.broadcastReceiver, filter); } }
在有退出程序方法的ApplicationActivity子类中增加close:
public void close() { Intent intent = new Intent(); intent.setAction(Const.CLOSE_ACTION); // 说明动作 this.sendBroadcast(intent);// 该函数用于发送广播 super.finish(); }
这样当执行close时,所有继承自ApplicationActivity的activity都会执行finish方法结束掉。
相关推荐
Android面试题涵盖了许多核心知识点,这些知识点对于理解Android应用程序的运行机制至关重要。下面将详细讨论其中涉及的一些关键概念。 1. Activity的生命周期是Android开发中的基础。Activity在生命周期中有多个...
- **关闭所有Activity**:介绍了如何一次性关闭应用程序中的所有Activity,通常用于退出应用的场景。 - **PreferenceActivity**:讲解了PreferenceActivity的用法,它主要用于构建设置页面。 - **Dialog风格的...
- **2.2 INTENTRECEIVER**:讲解了BroadcastReceiver的概念,这是一种监听系统或应用特定事件的组件,可以接收Intent广播并响应相应的动作。 - **2.3 SERVICE** - **2.3.1 什么是Service**:Service是一种在后台...
请谈谈Android引入广播机制的用意。 答:两种,一种是xml注册,一种是代码注册 xml注册的优点:方便、易读 缺点:当手机处于关机状态时,仍然可以监听到广播,不灵活 代码注册的优点:灵活,手机处于关机...
- **2.2 建立第一个Android项目~HelloAndroid!** 通过创建一个简单的“HelloWorld”项目,介绍了基本的项目设置过程,包括选择项目模板、配置应用名称和包名等。 - **2.3 Android应用程序架构—从此开始** ...
综上所述,本中文版Android开发指南详细阐述了Android应用的基础框架和组件交互机制,为开发者提供了一个全面的参考,以便他们能够熟练地构建和管理Android应用程序。无论是新手还是经验丰富的开发者,都可以从中...
在Android移动应用开发中,活动(Activity)是构成应用程序的核心组件之一,主要负责展示用户界面并处理用户交互。本章详细介绍了活动的概念、基本操作、Intent的使用以及在活动之间传递数据的方法。 2.1 活动是...