Android安全退出应用程序
来源:互联网 发布:做淘宝月收入多少 编辑:程序博客网 时间:2024/06/06 00:05
- 杀死进程。 这种方法是没有效果的只能杀死当前的
Activity
无法关闭程序,在1.5的时候有用,谷歌设计的时候规定程序不能自杀android.os.Process.killProcess(android.os.Process.myPid())
. - 终止当前正在运行的Java虚拟机,导致程序终止. 这种方法也是没有效果的,因为
Android
用的是dalvik
虚拟机System.exit(0);
- 强制关闭与该包有关联的一切执行 这种方法只能杀死别人,无法杀死自己
java ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); manager.restartPackage(getPackageName()); 同时需要申请权限 <uses-permission android:name="android.permission.RESTART_PACKAGES" />
既然上面介绍的三种方法都没有效果,那么怎么才能退出应用程序呢?
就是自定义一个Application
,在该Application
中去定义一个List<Activity>
的集合来记录中每一个开启的Activity
,在退出的时候去遍历这个List<Activity>
集合,然后挨个的进行mActivity.finish()
方法,这要求在每开启一个Activity
的时候都加入到List
集合中,并且在Activity
退出的时候从List
集合中将其移除。
```java public class Activity01 extends Activity {
@Overridepublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); MyApp myApp = (MyApp) getApplication(); myApp.activies.add(this);}@Overrideprotected void onDestroy() { super.onDestroy(); MyApp myApp = (MyApp) getApplication(); myApp.activies.remove(this);}public void click1(View view){ Intent intent = new Intent(this,Activity01.class); startActivity(intent);}public void click2(View view){ Intent intent = new Intent(this,Activity02.class); startActivity(intent);}public void exit(View view){ MyApp myApp = (MyApp) getApplication(); for(Activity ac : myApp.activies){ ac.finish(); }}
}
public class Activity02 extends Activity {
@Overridepublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main2); MyApp myApp = (MyApp) getApplication(); myApp.activies.add(this);}public void click1(View view) { Intent intent = new Intent(this, Activity01.class); startActivity(intent);}public void click2(View view) { Intent intent = new Intent(this, Activity02.class); startActivity(intent);}public void exit(View view) { MyApp myApp = (MyApp) getApplication(); for (Activity ac : myApp.activies) { ac.finish(); }}@Overrideprotected void onDestroy() { super.onDestroy(); MyApp myApp = (MyApp) getApplication(); myApp.activies.remove(this);}
}
public class MyApp extends Application { //存放当前应用程序里面打开的所有的activity public List activies; @Override public void onCreate() { activies = new ArrayList(); super.onCreate(); } }
1 1
- android 安全退出应用程序
- android 安全退出应用程序
- Android安全退出应用程序
- Android 安全退出应用程序
- Android 安全退出应用程序
- 【Android】安全退出应用程序
- Android如何安全退出应用程序
- Android 安全退出应用程序的方法总结
- 安全退出应用程序
- android 安全退出应用程序的几种方法
- android 安全退出应用程序的几种方法
- Android安全退出应用程序的几种方式ying用
- Android之安全退出应用程序的几种方式
- Android退出应用程序,完全退出!
- Android-安全退出
- Android-安全退出
- android 安全退出应用
- 企业级Android安全退出
- getElementById用法
- 六种常见的数据加载模式设计
- QMap 和 QHash
- C基础,计算机中的数以及volatile限定修饰符,指针及其注意事项,external,static,Void *
- Android init进程启动分析
- Android安全退出应用程序
- Spring 4 增强了对Java 8、Java EE 7、REST 和HTML5的支持
- 直接跳转到app store指定应用页面或评论页面
- 失落的C语言结构体封装艺术
- WPF中Timer与DispatcherTimer类的区别
- JavaScriptCore框架在iOS7中的对象交互和管理教程
- 回射程序(客户端)——客户接收一行数据
- android之Fragment(官网资料翻译)
- 双摄像头测距的OpenCV实现