4

我已经Broadcast Receiver在一个library项目中实施了检查Boot Completed事件,但它不起作用。

广播接收器类:

public class Reciever  extends BroadcastReceiver
{
    public void onReceive(Context context, Intent intent) 
    {
       if(intent.getAction().equals("android.intent.action.BOOT_COMPLETED"))
       {
            Toast.makeText(context, "Device Boot Completed", Toast.LENGTH_LONG).show();
       }
    }
}

AndroidManifest.xml:

    <receiver
        android:name=".Reciever"
        android:enabled="true" >
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>
    </receiver>

我在另一个应用程序(不是库项目)中实现了相同的接收器,它工作正常。

4

4 回答 4

1

BroadcastReceiver 不能在库项目的清单中定义。托管项目始终需要声明组件。

android 库项目和活动

编辑:我觉得这应该适用于最新的基于 Android Studio/gradle 的项目。

于 2014-02-23T13:31:07.620 回答
0

Override the following method

@Override public void onReceive(Context context, Intent intent)

于 2013-10-03T06:28:02.750 回答
0

你可能跳过

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

在清单文件中

于 2013-10-03T06:13:01.203 回答
-1

您应该向使用您的库 jar 的客户端应用程序清单文件添加接收标记重新启动权限

像这样;

     <receiver android:name="com.example.library.ReceiverClass"
         <intent-filter>
             <action android:name="android.intent.action.BOOT_COMPLETED" />
         </intent-filter>           
     </receiver>
于 2014-12-04T14:46:25.840 回答