Android系统切换语言更新应用界面方法

最近做的一个升级应用,在下载升级包的过程中又有一个toast类型的dialog悬浮在屏幕右上角,这个时候切换系统语言会出现问题。

当主屏幕为升级应用时,切换系统语言升级应用重启,而重启后并不能自动断点续传切换前的下载进度;当主屏幕为launcher的时候,切换系统语言进度条上的提示语言并不能跟着切换;

解决这一问题主要分为以下几步:

1.设置系统切换语言不重启属性,在menifest的activity中设置 android:configChanges="locale|layoutDirection",切换语言可以避免应用被系统重启,否则将会中断下载;

2.实现进度条服务监听语言切换广播后刷新语言功能,ACTION_LOCALE_CHANGED;下载和界面刷新是两个线程,因此该步骤主要负责界面刷新服务重新刷新界面,达到语言同步切换目的;

3.实现updateActivity回调onConfigurationChanged,重新设置界面语言。

@Override
public void onConfigurationChanged(android.content.res.Configuration newConfig) {
super.onConfigurationChanged(newConfig);
//系统语言改变回调,由于设置了切换语言不重启属性(保障下载不中断),因此需要重设界面语言
Log.d("yj", "=========================onConfigurationChanged....");
TextView TextView01 = (TextView) findViewById(R.id.TextView01);
TextView01.setText(R.string.sysupdate_soft);
TextView TextView02 = (TextView) findViewById(R.id.TextView02);
TextView02.setText(R.string.localupdate);
TextView TextView03 = (TextView) findViewById(R.id.TextView03);
TextView03.setText(R.string.networkupdate);

};

 

这三步同时做好会完美解决该问题,写此贴记录一下。

 

转载于:https://www.cnblogs.com/huamaoenjoy/p/4315232.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值