更改设备语言时更新通知文本

时间:2013-10-31 16:36:34

标签: android notifications auto-update

我是Android开发的新手,我有一个问题。

我正在为用户创建通知。一切都好。 问题是,当我更改设备语言时,我的通知不会自行更新。我不知道在Android上是否有任何原生方法可以做到这一点。

目前,我的解决方案是:在创建通知时,我创建一个线程来验证语言是否已更改。如果是这样,它会更新我的通知。当用户清除通知时,该线程将停止。

所以,我不知道这是不是一个好的实践,或者是否还有另一个问题。

PS:应用程序有很多strings.xml文件来翻译字符串。我正在使用Thread类来创建线程。

先谢谢你,为不好的英语而烦恼!

2 个答案:

答案 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 //法国法国加拿大

等等。