重新启动后注册Phonestate接收器

时间:2012-12-03 15:57:02

标签: android broadcastreceiver reboot

我已经实现了这样的接收器(在清单文件中)

    <receiver android:name="com.phonelight.realparrot.RecorderBroadcastReceiver">
        <intent-filter>
            <action android:name="android.intent.action.PHONE_STATE">        
             </action>
                 </intent-filter>
        </receiver>

如果手机的状态发生变化,则会调用录像机广播接收器。 一切都好。但是,如果我重新启动设备,则在运行我的应用程序之前永远不会调用接收器。

我需要在启动后注册(不调用)此接收器。

非常感谢,

[编辑]

我通过将以下接收器添加到清单文件

来解决了这个问题
   <receiver android:name="com.phonelight.realparrotpro.RecorderBroadcastReceiver">
                <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>
    </receiver>

我没有在java代码中注册RecorderBroadcastReceiver。 我只添加了上面的接收器。这意味着从应用程序调用任何东西都会注册在Manifest文件中写入的所有接收器。

1 个答案:

答案 0 :(得分:0)

您需要为onBootComplete创建一个接收器,然后在那里注册您的接收器。这样,即使重启后,您的接收器也会被注册。

<receiver android:name="App_Receiver">
<intent-filter>
    <action android:name="android.intent.action.BOOT_COMPLETED" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>