3

我有一些我想在每天凌晨 3:00 执行的代码。我已经阅读了服务类文档,看来我可以使用 AlarmManager 来触发一个意图(我认为是活动还是服务?),然后在该意图中创建并在 Android 通知区域中发布一条消息。

Calendar threeAM = Calendar.getInstance();
threeAM.set(Calendar.HOUR_OF_DAY,2);
threeAM.set(Calendar.MINUTE,0);
threeAM.set(Calendar.SECOND,0);
threeAM.set(Calendar.MILLISECOND,0);
AlarmManager alarmManager =
         (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, myNotifier.class);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, threeAM.getTimeInMillis(),
        AlarmManager.INTERVAL_DAY, PendingIntent.getService(context, 1, i , 0));
Log.i("Service TEST", "Alarm set?" );

它通过代码运行没有问题,但没有迹象表明已设置警报,并且活动没有开始。我正在使用我知道有效的活动。我尝试将其包装在 try/catch 中,logcat 中没有任何内容...

4

2 回答 2

2

我认为您应该注册您的活动以接收启动广播接收器,以便您的应用程序在操作系统启动完成时启动。这是链接http://www.androidenea.com/2009/09/starting-android-service-after-boot.html

它在通知方面无济于事,但是是的,它将解决您的活动无法开始的问题...

于 2011-02-19T21:06:31.360 回答
1

只有在凌晨 3 点之前执行,您的代码才会起作用。否则,您将在过去设置警报。

于 2011-02-19T21:07:47.770 回答