2 itjavawfc ItJavawfc 于 2014.12.11 00:47 提问

Android开发时获得开启的通知

敲代码遇到一个问题,许久未解决,求解:怎么实现收到开机的广播,程序大致的需求是在开机后谈一个对话框,关键是开机这个广播收不到 【查资料说:在应用进程没有启动的情况下是不能接收到的。】若能帮助,感激不尽!

4个回答

lxq_xsyu
lxq_xsyu   Rxr 2014.12.11 09:41
已采纳
    <receiver
        android:name="*.*BootRecerver"
        android:enabled="true" >
        <intent-filter android:priority="1000" >
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>
    </receiver>

            public class BootRecerver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    String action = intent.getAction();
    // 开机启动事件
    if (Intent.ACTION_BOOT_COMPLETED.equals(action)) {

    } 
}

}


ItJavawfc
ItJavawfc 谢谢,确实开启了“开机广播
3 年多之前 回复
YH858693
YH858693   2014.12.11 01:05

<?xml version="1.0" encoding="utf-8"?>
package="wyf.ytl"
android:versionCode="1"
android:versionName="1.0">

android:label="@string/app_name">






<!-- 注册接收器 -->








<!-- 在权限上要允许接收BOOT_COMPLETED消息 -->


这样你的receiver就能收到系统启动的广播 开启你的service了

ItJavawfc
ItJavawfc 谢谢您的帮助,我试了,是可以的。问题在于:重启手机后,手机开机阶段有一些列的操作,导致广播触发是弹出一个对话框的时候很晚。看了大家都是这么解决的,我一次性弹出20个对话框,对话框弹出。验证了,广播已开启。谢谢您的帮助。
3 年多之前 回复
ItJavawfc
ItJavawfc 这样是试了不行
3 年多之前 回复
ItJavawfc
ItJavawfc <receiver android:name="com.example.mobilesafe.receiver.BootCompleteReceiver"> <intent-filter > <action android:name="android.intent.action.BOOT_COMPLETED"/> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver>
3 年多之前 回复
ItJavawfc
ItJavawfc <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
3 年多之前 回复
ItJavawfc
ItJavawfc package="com.example.mobilesafe" android:versionCode="2" android:versionName="2.0.2" >
3 年多之前 回复
save4me
save4me   Ds   Rxr 2014.12.11 09:24

你的程序是否安装在SD卡上的?可以参考一下
[Android] 通过监测BOOT_COMPLETED与MEDIA_MOUNTED判断开机,注册android.intent.action.MEDIA_MOUNTED和android.intent.action.MEDIA_EJECT

Automatically starting Services in Android after booting,注册android.intent.action.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE
另外参考Android 4.0及以上版本接收开机广播BOOT_COMPLETED、开机自启动服务,你的应用至少在安装后要启动一次。
所以你安装后启动一下你的应用,然后再开机,看看能不能接收到开机广播。

lxq_xsyu
lxq_xsyu   Rxr 2014.12.11 09:40

注册广播:
android:name="**.**.BootRecerver"
android:enabled="true" >




广播接收:
public class BootRecerver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    String action = intent.getAction();
    // 开机启动事件
    if (Intent.ACTION_BOOT_COMPLETED.equals(action)) {
        //TODO
    } 
}
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!