我是Android开发的新手,我有一个问题。
我正在为用户创建通知。一切都好。 问题是,当我更改设备语言时,我的通知不会自行更新。我不知道在Android上是否有任何原生方法可以做到这一点。
目前,我的解决方案是:在创建通知时,我创建一个线程来验证语言是否已更改。如果是这样,它会更新我的通知。当用户清除通知时,该线程将停止。
所以,我不知道这是不是一个好的实践,或者是否还有另一个问题。
PS:应用程序有很多strings.xml文件来翻译字符串。我正在使用Thread类来创建线程。
先谢谢你,为不好的英语而烦恼!
答案 0 :(得分:1)
在您的应用程序类中,您可以继续参考当前显示的通知ID及其信息。您可以在onConfigurationChanged(Configuration newConfig)
中检测语言更改并在那里更新您的通知。
public class App extends Application {
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
//update your notifications there is no need for a Thread
}
}
另一种解决方案(真实的)
添加Receiver以进行区域设置更改
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//retrieve the list of notifications
//update them (no need for thread)
}
}
添加到您的清单:
<receiver android:name="MyReceiver">
<intent-filter>
<action android:name="android.intent.action.LOCALE_CHANGED">
</action>
</intent-filter>
</receiver>
答案 1 :(得分:0)
我很可能没有正确理解你的问题。
因为你有很多strings.xml文件来翻译字符串 您只需将它们放在适当的文件夹中:
res/values-pt-rPT
//葡萄牙葡萄牙语
res/values-fr-rFR
//法国法国
res/values-fr-rCA
//法国法国加拿大
等等。