我尝试设置每天早上8点闹钟执行mainActivity,所以这是我的MainActivity:
protected void onCreate(Bundle savedInstanceState){
Intent Alarm = new Intent(MainActivity.this,LongRunningService.class);
startService(Alarm);
}
LongRunningService是Service:
AlarmManager manager = (AlarmManager) getSystemService(ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 8);
calendar.set(Calendar.MINUTE, 00);
Intent i = new Intent(this,AlarmReceiver.class);
intent.setAction("startAlarm");
PendingIntent pi = PendingIntent.getBroadcast(this,0,i,0);
manager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),AlarmManager.INTERVAL_DAY, pi);
AlarmReceiver.java
public void onReceive(Context context, Intent intent){
if ("startAlarm".equals(intent.getAction()))
Log.d(TAG, "onReceive! "); //not working?
}
Log.d(TAG, "onReceive! "); //it's working
答案 0 :(得分:0)
来源:which permissions an android application need in order to use the Alarm Manager Service?
每10分钟唤醒一次CPU,直到手机关闭。
<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>
<uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>
<receiver android:process=":remote" android:name="Alarm"></receiver>
如果要设置在电话启动时重复发出警报:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED">
...
有关详细信息: Alarm Manager Example
根据android文档,您应该使用SET_ALARM权限
允许应用程序广播意图以设置警报 用户。
答案 1 :(得分:0)
我知道会发生什么,
Intent i = new Intent(this,AlarmReceiver.class);
intent.setAction("startAlarm"); //wrong
i.setAction("startAlarm"); //correct