我正在尝试使用AlarmManager设置BroadcastReceiver,仅出于测试目的,它会在2000毫秒后触发。但是,什么都没有发生
主类
Intent intent = new Intent(this, test_class.class);
PendingIntent alarmIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
Log.d("ALARM_DE","Set for: "+System.currentTimeMillis() + 2000);
AlarmManager alarmManager =
(AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 2000 ,
AlarmManager.INTERVAL_DAY, alarmIntent);
接收班级
public class test_class extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
// Set the alarm here.
}
Log.d("ALARM_DE","Time: "+System.currentTimeMillis());
}
}
AndroidManifest.xml
<receiver android:name=".test_class" android:exported="false" >
<intent-filter>
<action android:name="NOTIFICATION_SERVICE" />
</intent-filter>
</receiver>
解决了问题!初始化意图后,我简单地添加了intent.setAction("NOTIFICATION");
并通过了!任何字符串都可以完成这项工作:)