关于Android程序杀掉之前所有Activity(可用于登陆后被顶掉、更改应用内语言)
来源:互联网 发布:盛势网络剧视频bili 编辑:程序博客网 时间:2024/06/05 16:50
关于Android程序杀掉之前所有Activity(可用于登陆后被顶掉、更改应用内语言)
这里以更改应用内语言为例:
可以有两种方式:
第一种,重新设定下应用内语言,不过这个方法要写在程序的第一个activity里面(也就是AndroidManifest.xml里面的LAUNCHER这个页),而且这个activity不能被finish。
先在LAUNCHER的activity里加入下面这个方法。
public static void settingLanguage(Locale locale) { Configuration config = AppApplication.getContext().getResources().getConfiguration();// 获得设置对象 Resources resources = AppApplication.getContext().getResources();// 获得res资源对象 DisplayMetrics dm = resources.getDisplayMetrics();// 获得屏幕参数:主要是分辨率,像素等。 config.locale = locale; // 简体中文 config.setLayoutDirection(locale); resources.updateConfiguration(config, dm); }
然后在需要改语言的那个页面加入如下代码
locale = new Locale(language); LanuncherActivity.settingLanguage(locale); Intent intent = new Intent(thisActivity.this, LanuncherActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); finish();
这样就可以把app内语言改变了,这种方法是利用
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
这句代码将栈内在LAUNCHER的activity之上的所有activity都出栈,从而从新加载新的语言,这种方法缺点也很明显:1、LAUNCHER页必须保证一直不能被finish。2、如果activity的加载模式有singleTop,singleTask,这种方法就不太好用了。
下面介绍第二种方法:
建立一个class继承 Application在里面加入下面代码:
public void addActivity(Activity activity) { activityList.add(activity); } public void finishActivity() { if (activityList.size() == 0) { activityList.clear(); } for (Activity activity : activityList) { activity.finish(); } }
之后在所有(一定是所有)activity 执行 onCreat()方法的时候都调用一次Application里的add()方法 ,把当前的activity穿进去,之后在你切换语言(也可以是强制下线)的同时,调用Application里的finishActivity()方法,也可以将所有开启的activity都finish掉,缺点是比较麻烦,每个activity里都要添加add()方法。优点是不管activity是什么启动模式都可以完全finish。
0 0
- 关于Android程序杀掉之前所有Activity(可用于登陆后被顶掉、更改应用内语言)
- 随时随地退出应用(结束之前所有的Activity)
- Android应用隐藏在所有程序列表内显示图标
- Android自定义控件-EditText(可用于登陆界面)
- Android 自带的一些可用于Activity的Theme
- Android自带的一些可用于Activity的Theme
- Android应用更改系统语言
- android 杀掉当前应用
- 关于Android应用内多语言切换的问题
- Android开发——程序锁的实现(可用于开发钓鱼登录界面)
- Android 应用内切换语言
- android 应用内切换语言
- android 应用内切换语言
- android 应用内语言切换
- android 应用内切换语言
- android 应用内切换语言
- 如何随时随地退出Activity,在退出Activity的时候关闭之前的Activity,如何退出程序所有Activity
- flash内嵌于C#程序中的应用
- php常用方法总结(持续更新中)
- 蓝桥杯 饮料换购
- aandroid 不能墙时的下载镜像地址
- 八大排序
- ES2015 - JavaScript (1)
- 关于Android程序杀掉之前所有Activity(可用于登陆后被顶掉、更改应用内语言)
- Android中5大数据存储(三)---SQLite数据库存储
- oracle 全文检索实践
- 威佐夫博奕
- Java - JCP、JSR等名词介绍
- Linux笔记(55)——主控脚本
- pod小问题
- file结构中的private_data
- iOS开发网络篇之文件下载、大文件下载、断点下载