locale信息改变之后,会发广播消息Intent.ACTION_LOCALE_CHANGED,
具体实现在activitymanagerservice.java代码updateConfigurationLocked函数中,
自己写接收代码如下:
接收代码:
public class testReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.v("test", "hello");
if(intent.getAction().compareTo(Intent.ACTION_LOCALE_CHANGED) == 0)
{
//处理
Log.v("test", “received ACTION_LOCALE_CHANGED”);
}
}
}
在AndroidManifest.xml中,添加intent过滤器,声明可以接收广播消息,
如下,
<intent-filter>
<action android:name="android.intent.action.LOCALE_CHANGED" />
</intent-filter>
这样当locale改变之后,onReceive会接收到locale改变的消息,执行相应的处理
转自 http://blog.csdn.net/liushaogeng/archive/2010/09/28/5912560.aspx
分享到:
相关推荐
当系统语言设置改变时,Android会自动加载相应语言的资源文件。 要实现系统语言的切换,通常有两种方式: 1. **运行时动态切换**:在应用程序内部,通过`ContextWrapper`的`createConfigurationContext()`方法和`...
记得在AndroidManifest.xml中为你的Activity添加`android:configChanges="locale"`属性,这样当语言改变时,系统会调用`onConfigurationChanged(Configuration newConfig)`方法,而不是重新启动Activity。...
但为了实现应用内切换,我们需要手动改变应用的Locale。这通常在Application或Activity的基类中完成,通过`Resources`和`ContextWrapper`进行设置。 4. **动态切换语言** - 创建一个方法来切换语言,比如`...
在下载过程中,每当接收到新的进度,就需要调用MainActivity中的`updateProgress`方法,以更新进度条和百分比文本。 通过以上步骤,我们就创建了一个具有百分比显示的进度条,可以方便地应用于Android应用中的文件...
在 Android 开发中,广播接收器(Broadcast Receiver)是一种重要的组件,用于接收来自系统和其他应用的消息。通过广播,应用程序可以了解到设备的状态变化、系统事件等信息,并据此做出相应的处理。下面我们将详细...
例如,`setLanguage(Locale)`可以改变发音的语种,适应不同的用户需求。 5. **转换文本**: 要将文本转换为语音,使用`speak()`方法。此方法接收要朗读的文本、发音选项和一个合成完成的回调。例如,`speak(text, ...
这个方法接收一个`Configuration`对象作为参数,我们可以通过修改其`locale`字段来指定新的语言。例如,将语言切换为英文可以这样操作: ```java Configuration config = getResources().getConfiguration(); ...
要实现在应用内部切换语言,可以创建一个方法,该方法接收语言代码作为参数,然后根据代码更新应用的配置。例如: ```java public void changeLanguage(String languageCode) { Locale locale = new Locale...
但需要注意,仅改变应用语言,并不能保证应用在系统语言改变后不随之改变,因为Android应用默认会跟随系统语言的改变而改变语言设置。为了保持应用语言的稳定性,需要对语言切换进行监听。 #### 二、语言切换监听 ...
本教程将深入讲解如何在Android Studio中创建一个能够显示当前日期和时间的Widget,这个Widget会随着手机系统时间的改变而自动更新。 首先,我们需要创建一个新的Android项目,并在res/layout目录下设计Widget的...
在接收到语言更改的广播后,调用`ContextWrapper.getResources().updateConfiguration()`方法更新配置,使得系统重新加载匹配新语言的资源。 此外,Android Studio提供了方便的工具来帮助开发者管理多语言资源。在...
前者会在传感器数据发生变化时被调用,后者则在传感器精度改变时触发。在onSensorChanged()中,我们可以处理并显示接收到的传感器数据: ```java private SensorEventListener sensorEventListener = new ...
- **Tween Animation**:补间动画不改变视图的实际属性,而是通过在初始和最终状态之间平滑过渡来模拟动画效果,如淡入淡出或缩放。 - **Frame Animation**:帧动画通过连续显示一系列静态图像来创建动画效果,类似...
除了在`AndroidManifest.xml`中进行配置外,还需要在对应的Activity中重写`onConfigurationChanged`方法,以便在配置改变时接收到通知,并在其中进行相应的处理。 ```java public class MainActivity extends ...
`ActivityThread`接收到`CONFIGURATION_CHANGED`消息后,执行`handleConfigurationChanged()`。这个方法调用了`applyConfigurationToResourcesLocked()`和`performConfigurationChanged()`,分别用于更新资源和处理...
上述代码会监听GPS位置提供者,并在位置改变时调用onLocationChanged()方法。参数分别表示更新间隔(毫秒)、距离变化阈值(米)和位置监听器。 4. **检查GPS是否开启**: 在请求位置更新之前,应确保GPS已开启。...
#### 一、`android.provider.Telephony.SMS_RECEIVED` - 接收到短信时的广播 当设备接收到新的短信时,系统会发送此广播。开发者可以利用这一特性来监听并处理接收到的短信,例如自动提取短信中的验证码。 #### 二...
- 滚动选择器通常基于Android的`HorizontalScrollView`或`RecyclerView`实现,利用滑动事件来改变日期的选择。它会展示一个月的日历视图,用户可以左右滑动来切换月份,上下滑动选择日期。 2. **自定义视图组件**...
为了使界面语言的改变立即生效,我们需要监听这个广播并在接收到后重新加载界面。为此,可以在AndroidManifest.xml中注册一个BroadcastReceiver,或者在MainActivity内部创建一个匿名的BroadcastReceiver: ```java...