android通知栏语言更改,android语言切换后通知栏显示的问题

在移动UIUE项目中,遇到一个问题:当改变Android设备的语言设置时,状态栏快捷功能文字和下拉通知栏的文字不会立即更新。为解决这个问题,可以监听ACTION_LOCALE_CHANGED广播。通过注册BroadcastReceiver并在onReceive方法中处理Intent.ACTION_LOCALE_CHANGED,确保在系统语言变更时及时更新UI元素。这样可以确保应用在用户切换语言后能正确显示新的语言设置。

之前在移动UIUE项目中发现一个问题:

改变android语言设置,但是状态栏的快捷功能显示文字不会立即发生改变。

同样,下拉通知栏的文字显示在切换语言后也不会同步更新。

于是在项目中引入:

@SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)

public static final String ACTION_LOCALE_CHANGED = "android.intent.action.LOCALE_CHANGED";

解决此问题的关键是在合适的时候和位置添加处理系统在切换语言后发出的广播信息。

比如你有一个IntentFilter,那么你要把ACTION_LOCALE_CHANGED添加到里面。

你要注册一个专门来接收处理系统在切换语言后发出的信息的广播。

例如:

locale信息改变之后,会发广播消息Intent.ACTION_LOCALE_CHANGED,

具体实现在activitymanagerservice.java代码updateConfigurationLocked函数中,

自己写接收代码如下:

1. 接收处理代码:

privateBroadcastReceiver mReceiver = new BroadcastReceiver(){

@Override

publicvoid onReceive(Context context, Intent intent) {

Log.v(TAG, "mReceiver  onReceive  intent.getAction(): "+intent.getAction());

if(intent.getAction().equals(Intent.ACTION_LOCALE_CHANGED)) {

…//此处做你的处理

}

}

};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值