我目前正在学习如何为Android设备创建应用,并且遇到了一些障碍。我目前正在进行的练习涉及广播意图。我遇到的具体问题是,当我启动设备时,应该有一条日志消息,指出已收到广播意图并且我的应用程序的警报应该重新启动。不幸的是,这些事情都没有发生,因为看起来我的onReceive方法在启动时从未被调用过。据我所知,我的代码完全符合它的要求。我已经包含了我的清单文件以及我的接收器类。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.bignerdranch.android.photogallery">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".PhotoGalleryActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<service android:name=".PollService"/>
<receiver android:name="com.bignerdranch.android.photogallery.StartupReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
</application>
</manifest>
StartupReceiver.java
package com.bignerdranch.android.photogallery;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
/**
* Created by Danny Wayne on 8/16/2016.
*/
public class StartupReceiver extends BroadcastReceiver
{
private static final String TAG = "StartupReceiver";
@Override
public void onReceive(Context context, Intent intent)
{
Log.i(TAG, "Received broadcast intent: " + intent.getAction());
boolean isOn = QueryPreferences.isAlarmOn(context);
PollService.setServiceAlarm(context, isOn);
}
}
任何帮助都将非常感谢!