andriod切换语言,切换时区,重启应用apk
来源:互联网 发布:金融界免费炒股软件 编辑:程序博客网 时间:2024/06/15 08:24
-----------------切换页面语言-----------------
微信的切换语言就是基于这种方式,切换了语言之后activity需要重启,微信的做法是重启跳转到主页面
<span style="font-size:18px;">/** * @param 简体中文="zh",英语="en" */ public static void setLanguage(Context context,String language) { if(language==null||context==null){ return ; } Resources resources = context.getResources(); Configuration config = new Configuration(); DisplayMetrics dm = resources.getDisplayMetrics(); if("en".equals(language)){ config.locale = Locale.ENGLISH; }else if("zh".equals(language)){ config.locale = Locale.SIMPLIFIED_CHINESE; }else{ config.locale = Locale.SIMPLIFIED_CHINESE; } resources.updateConfiguration(config, dm); }</span>
----------------------切换系统语言------------------------
<span style="font-size:18px;">Utils.updateLanguage(Locale.CHINA);//调用的方式public static void updateLanguage(Locale locale) { try { Object objIActMag, objActMagNative; Class clzIActMag = Class.forName("android.app.IActivityManager"); Class clzActMagNative = Class.forName("android.app.ActivityManagerNative"); Method mtdActMagNative$getDefault = clzActMagNative.getDeclaredMethod("getDefault"); // IActivityManager iActMag = ActivityManagerNative.getDefault(); objIActMag = mtdActMagNative$getDefault.invoke(clzActMagNative); // Configuration config = iActMag.getConfiguration(); Method mtdIActMag$getConfiguration = clzIActMag.getDeclaredMethod("getConfiguration"); Configuration config = (Configuration) mtdIActMag$getConfiguration.invoke(objIActMag); config.locale = locale; // iActMag.updateConfiguration(config); // 此处需要声明权限:android.permission.CHANGE_CONFIGURATION // 会重新调用 onCreate(); Class[] clzParams = { Configuration.class }; Method mtdIActMag$updateConfiguration = clzIActMag.getDeclaredMethod( "updateConfiguration", clzParams); mtdIActMag$updateConfiguration.invoke(objIActMag, config); } catch (Exception e) { e.printStackTrace(); } }</span>
----------------------重启apk-----------------------------
通过重启apk来改变语言
<span style="font-size:18px;">private Application mApplication;private void reStartApk() { if (mApplication == null) { mApplication = LauncherApplication.getInstance(); } int remotePid = Utils.getPid(mApplication, "com.moco.launcher:remote"); android.os.Process.killProcess(remotePid); PackageManager packageManager = mApplication.getPackageManager(); Intent launchIntentForPackage = packageManager .getLaunchIntentForPackage(mApplication.getPackageName()); mApplication.startActivity(launchIntentForPackage); android.os.Process.killProcess(android.os.Process.myPid()); }public static int getPid(Context ctx,String progressName) { ActivityManager mActivityManager = (ActivityManager) ctx .getSystemService(ctx.ACTIVITY_SERVICE); List<ActivityManager.RunningAppProcessInfo> mRunningProcess = mActivityManager .getRunningAppProcesses(); int i = -1; for (ActivityManager.RunningAppProcessInfo amProcess : mRunningProcess) { if(amProcess.processName.equals(progressName)) { return amProcess.pid; } } return i; }</span>
----------------------切换时区------------------
// 关闭开启自动更新时区int global = android.provider.Settings.Global.getInt(mCtx.getContentResolver(), android.provider.Settings.Global.AUTO_TIME_ZONE, 1); if(global!=0){ android.provider.Settings.Global.putInt(mCtx.getContentResolver(), android.provider.Settings.Global.AUTO_TIME_ZONE, 0); }
需要system权限: <uses-permission android:name="android.permission.WRITE_SETTINGS"/> <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
<span style="font-size:18px;">// 设置时区AlarmManager mAlarmManager = (AlarmManager)mCtx.getSystemService(Context.ALARM_SERVICE); mAlarmManager.setTimeZone("GMT+08:00"); // mAlarmManager.setTimeZone("America/New_York"); // mAlarmManager.setTimeZone("GMT-5:00");</span>
<span style="font-size:18px;">设置时区需要的权限:<uses-permission android:name="android.permission.SET_TIME_ZONE" /><timezones> <timezone id="Pacific/Majuro">马朱罗</timezone> <timezone id="Pacific/Midway">中途岛</timezone> <timezone id="Pacific/Honolulu">檀香山</timezone> <timezone id="America/Anchorage">安克雷奇</timezone> <timezone id="America/Los_Angeles">美国太平洋时间 (洛杉矶)</timezone> <timezone id="America/Tijuana">美国太平洋时间 (提华纳)</timezone> <timezone id="America/Phoenix">美国山区时间 (凤凰城)</timezone> <timezone id="America/Chihuahua">奇瓦瓦</timezone> <timezone id="America/Denver">美国山区时间 (丹佛)</timezone> <timezone id="America/Costa_Rica">美国中部时间 (哥斯达黎加)</timezone> <timezone id="America/Chicago">美国中部时间 (芝加哥)</timezone> <timezone id="America/Mexico_City">美国中部时间 (墨西哥城)</timezone> <timezone id="America/Regina">美国中部时间 (里贾纳)</timezone> <timezone id="America/Bogota">哥伦比亚时间 (波哥大)</timezone> <timezone id="America/New_York">美国东部时间 (纽约)</timezone> <timezone id="America/Caracas">委内瑞拉时间 (加拉加斯)</timezone> <timezone id="America/Barbados">大西洋时间 (巴巴多斯)</timezone> <timezone id="America/Manaus">亚马逊标准时间 (马瑙斯)</timezone> <timezone id="America/Santiago">圣地亚哥</timezone> <timezone id="America/St_Johns">纽芬兰时间 (圣约翰)</timezone> <timezone id="America/Sao_Paulo">圣保罗</timezone> <timezone id="America/Argentina/Buenos_Aires">布宜诺斯艾利斯</timezone> <timezone id="America/Godthab">戈特霍布</timezone> <timezone id="America/Montevideo">乌拉圭时间 (蒙得维的亚)</timezone> <timezone id="Atlantic/South_Georgia">南乔治亚</timezone> <timezone id="Atlantic/Azores">亚述尔群岛</timezone> <timezone id="Atlantic/Cape_Verde">佛得角</timezone> <timezone id="Africa/Casablanca">卡萨布兰卡</timezone> <timezone id="Europe/London">格林尼治标准时间 (伦敦)</timezone> <timezone id="Europe/Amsterdam">中欧标准时间 (阿姆斯特丹)</timezone> <timezone id="Europe/Belgrade">中欧标准时间 (贝尔格莱德)</timezone> <timezone id="Europe/Brussels">中欧标准时间 (布鲁塞尔)</timezone> <timezone id="Europe/Sarajevo">中欧标准时间 (萨拉热窝)</timezone> <timezone id="Africa/Windhoek">温得和克</timezone> <timezone id="Africa/Brazzaville">西部非洲标准时间 (布拉扎维)</timezone> <timezone id="Asia/Amman">东欧标准时间 (安曼)</timezone> <timezone id="Europe/Athens">东欧标准时间 (雅典)</timezone> <timezone id="Asia/Beirut">东欧标准时间 (贝鲁特)</timezone> <timezone id="Africa/Cairo">东欧标准时间 (开罗)</timezone> <timezone id="Europe/Helsinki">东欧标准时间 (赫尔辛基)</timezone> <timezone id="Asia/Jerusalem">以色列时间 (耶路撒冷)</timezone> <timezone id="Europe/Minsk">明斯克</timezone> <timezone id="Africa/Harare">中部非洲标准时间 (哈拉雷)</timezone> <timezone id="Asia/Baghdad">巴格达</timezone> <timezone id="Europe/Moscow">莫斯科</timezone> <timezone id="Asia/Kuwait">科威特</timezone> <timezone id="Africa/Nairobi">东部非洲标准时间 (内罗毕)</timezone> <timezone id="Asia/Tehran">伊朗标准时间 (德黑兰)</timezone> <timezone id="Asia/Baku">巴库</timezone> <timezone id="Asia/Tbilisi">第比利斯</timezone> <timezone id="Asia/Yerevan">埃里温</timezone> <timezone id="Asia/Dubai">迪拜</timezone> <timezone id="Asia/Kabul">阿富汗时间 (喀布尔)</timezone> <timezone id="Asia/Karachi">卡拉奇</timezone> <timezone id="Asia/Oral">乌拉尔</timezone> <timezone id="Asia/Yekaterinburg">叶卡捷林堡</timezone> <timezone id="Asia/Calcutta">加尔各答</timezone> <timezone id="Asia/Colombo">科伦坡</timezone> <timezone id="Asia/Katmandu">尼泊尔时间 (加德满都)</timezone> <timezone id="Asia/Almaty">阿拉木图</timezone> <timezone id="Asia/Rangoon">缅甸时间 (仰光)</timezone> <timezone id="Asia/Krasnoyarsk">克拉斯诺亚尔斯克</timezone> <timezone id="Asia/Bangkok">曼谷</timezone> <timezone id="Asia/Shanghai">中国标准时间 (北京)</timezone> <timezone id="Asia/Hong_Kong">香港时间 (香港)</timezone> <timezone id="Asia/Irkutsk">伊尔库茨克时间 (伊尔库茨克)</timezone> <timezone id="Asia/Kuala_Lumpur">吉隆坡</timezone> <timezone id="Australia/Perth">佩思</timezone> <timezone id="Asia/Taipei">台北时间 (台北)</timezone> <timezone id="Asia/Seoul">首尔</timezone> <timezone id="Asia/Tokyo">日本时间 (东京)</timezone> <timezone id="Asia/Yakutsk">雅库茨克时间 (雅库茨克)</timezone> <timezone id="Australia/Adelaide">阿德莱德</timezone> <timezone id="Australia/Darwin">达尔文</timezone> <timezone id="Australia/Brisbane">布里斯班</timezone> <timezone id="Australia/Hobart">霍巴特</timezone> <timezone id="Australia/Sydney">悉尼</timezone> <timezone id="Asia/Vladivostok">海参崴时间 (符拉迪沃斯托克)</timezone> <timezone id="Pacific/Guam">关岛</timezone> <timezone id="Asia/Magadan">马加丹时间 (马加丹)</timezone> <timezone id="Pacific/Auckland">奥克兰</timezone> <timezone id="Pacific/Fiji">斐济</timezone> <timezone id="Pacific/Tongatapu">东加塔布</timezone></timezones></span>
1 0
- andriod切换语言,切换时区,重启应用apk
- 关于apk应用内部切换语言
- android 2种切换语言方式:应用内切换和随系统而切换 代码实现重启应用
- 应用内切换语言
- iOS开发之应用内快速切换语言包(不跟随系统语言,不用重启)
- MFC 多语言切换 和 程序重启
- Android 切换系统语言后,重启App
- Android 应用内切换语言
- android 应用内切换语言
- android 应用内切换语言
- android 应用内语言切换
- android 应用内切换语言
- Android应用内部切换语言
- 切换语言不退出应用
- [Android]应用语言切换 国际化
- android 应用内切换语言
- Android应用横竖屏切换时Activity重启问题
- 语言切换,横竖屏切换,物理键盘推出导致activity重启原因分析和问题解决
- 实际案例讲解iOS设计模式——MVC模式
- 安卓开发错误笔记
- Android系统当前时间日期的获取
- 利用指定文件进行参考以进行单词的转换
- Java登录到新浪微博抓取数据
- andriod切换语言,切换时区,重启应用apk
- C#接收C/C++DLL的结构体嵌套数组及多维数组的解决方案
- Android提高第四篇之Activity+Intent
- VMware中ubuntu忘记密码的解决办法
- 实战解析Android架构设计原则
- qq链接
- Java设计模式_观察者模式&事件处理机制
- 水纹特效vc++源码
- hdu5120