2018-04-26 Application name属性

最近做机顶盒开发,需要从开机广播中获取一个“userName”的值放入到Application中。测试过程发现怎么也获取不到,抓了下Log发现自定义的Application没有启动。查了下资料才发现是因为没有设置Application的name属性,导致没有关联自定义的Application。

Receiver代码:

@Override
    public void onReceive(Context context, Intent intent) {
        // TODO: This method is called when the BroadcastReceiver is receiving
        SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        Gson gson = new Gson();
        Map result = (Map) gson.fromJson(intent.getStringExtra("params"), Map.class);
        editor.putString("userName",(String)result.get("userName"));
        System.out.println("MyReceiver : " + (String)result.get("userName"));
        editor.commit();
    }

Application代码:

sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
        userName = sharedPreferences.getString("userName","");
        System.out.println("MyAppliaction onActivityStarted : " + userName);

AndroidManifest.xml:

<application
        android:name=".MyApplication"
        android:allowBackup="true"
...
/>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,678评论 25 708
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,881评论 2 17
  • 精华与糟粕是一对相互对比而存在的概念词组,在它们之间还存在着一个灰色区域或中性地带。对精华与糟粕的判断,既有主观的...
    禹音阅读 2,246评论 0 0
  • 我们相遇可真晚。也许时间对你来说刚好或有些早。还记得我们好之前的一个晚上。我那时终于对你叫啥有了印象。你在教会走廊...
    美女一号阅读 353评论 0 5