android - 在manifests中注册开机启动可以成功,但是在代码中注册开机启动不可以,这是为什么?
大家讲道理
大家讲道理 2017-04-17 13:03:40
[Android讨论组]

manifest 中:

    
        
            
        
    

代码中:

IntentFilter intentFilter;
BootCompleteReceiver bootCompleteReceiver;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    intentFilter = new IntentFilter();
    intentFilter.addAction("android.intent.action.BOOT_COMPLETED");
    bootCompleteReceiver = new BootCompleteReceiver();
    registerReceiver(bootCompleteReceiver,intentFilter);
}

都写了BootCompleteReceiver

class BootCompleteReceiver extends BroadcastReceiver{

    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context,"hello world",Toast.LENGTH_SHORT).show();
    }
}

但是在manifest中可以实现开机toast,在代码中写的registerReceiver不能实现开机toast,这是为什么??

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(3)
大家讲道理

动态注册和静态注册的区别。
manifest里的广播应该是在会在系统的全局广播列表里注册了;
代码注册的,只有在app启动执行了这段注册代码后才注册。

怪我咯

因为刚开机的时候你的代码还没有运行

迷茫

manifest里声明的,是在安装的时候注册
代码写的,是在你代码执行的时候注册的

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号