每天通过 android 设置闹钟 8 时钟不起作用
Set Alarm 8 clock in every day via android is not working
我尝试设置每天早上 8 点的闹钟来执行 mainActivity,所以这是我的 MainActivity:
protected void onCreate(Bundle savedInstanceState){
Intent Alarm = new Intent(MainActivity.this,LongRunningService.class);
startService(Alarm);
}
LongRunningService 是服务:
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
来源:which permissions an android application need in order to use the Alarm Manager Service?
它每 10 分钟唤醒一次 CPU,直到 phone 关闭。
<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>
如果你想在 phone 启动时重复设置闹钟:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED">
...
更多详情: Alarm Manager Example
根据 android 文档,您应该使用 SET_ALARM 权限
Allows an application to broadcast an Intent to set an alarm for the
user.
我知道会发生什么,
Intent i = new Intent(this,AlarmReceiver.class);
intent.setAction("startAlarm"); //wrong
i.setAction("startAlarm"); //correct
我尝试设置每天早上 8 点的闹钟来执行 mainActivity,所以这是我的 MainActivity:
protected void onCreate(Bundle savedInstanceState){
Intent Alarm = new Intent(MainActivity.this,LongRunningService.class);
startService(Alarm);
}
LongRunningService 是服务:
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
来源:which permissions an android application need in order to use the Alarm Manager Service?
它每 10 分钟唤醒一次 CPU,直到 phone 关闭。
<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>
如果你想在 phone 启动时重复设置闹钟:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED">
...
更多详情: Alarm Manager Example
根据 android 文档,您应该使用 SET_ALARM 权限
Allows an application to broadcast an Intent to set an alarm for the user.
我知道会发生什么,
Intent i = new Intent(this,AlarmReceiver.class);
intent.setAction("startAlarm"); //wrong
i.setAction("startAlarm"); //correct