Android安全退出应用程序

  1. 杀死进程。 这种方法是没有效果的只能杀死当前的Activity无法关闭程序,在1.5的时候有用,谷歌设计的时候规定程序不能自杀android.os.Process.killProcess(android.os.Process.myPid()).
  2. 终止当前正在运行的Java虚拟机,导致程序终止. 这种方法也是没有效果的,因为Android用的是dalvik虚拟机 System.exit(0);
  3. 强制关闭与该包有关联的一切执行 这种方法只能杀死别人,无法杀死自己 
    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 {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    MyApp myApp = (MyApp) getApplication();
    myApp.activies.add(this);
}

@Override
protected 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 {

@Override
public 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();
    }
}

@Override
protected 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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android应用安全是指在开发和部署Android应用时采取措施,以保护应用程序和用户数据免受潜在的威胁和攻击。为了提高Android应用的安全性,可以考虑以下几个方面: 首先,使用Android Jetpack的Security库可以提供数据安全的功能,该库适用于运行Android 6.0及更高版本的设备。该库主要关注Android应用中读写文件的安全性。可以阅读官方文档了解更多详细信息。 其次,为了更安全地处理数据,可以采取一些措施。例如,增强混淆字典可以使应用程序的代码更难以理解和逆向工程。此外,关闭日志记录可以减少敏感信息在日志中的泄露风险。 另外,在AndroidManifest.xml文件中可以设置`android:allowBackup=false`来关闭数据备份功能,从而避免应用数据在备份过程中被泄露。 最后,还需要注意避免敏感函数调用风险。在开发过程中,应当避免直接调用敏感函数,例如发送敏感数据时要使用加密算法来保护数据的机密性。 综上所述,为了提高Android应用的安全性,可以使用Android Jetpack的Security库,采取数据安全处理措施,关闭数据备份功能,以及避免敏感函数调用风险。这些措施可以有效保护应用程序和用户数据的安全。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Android应用安全解决方案](https://blog.csdn.net/c6E5UlI1N/article/details/124012939)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值