Android:如何启动Alarm服务?

时间:2014-12-23 10:00:32

标签: android android-service

如果我正在听电话状态,那么我正在写一个接收器并在清单中提到这样的接收器。

 <receiver android:name="com.domyhome.broadcastreceiver.IncomingCallInterceptor" >
        <intent-filter>
            <action android:name="android.intent.action.PHONE_STATE"/>
        </intent-filter>
 </receiver>

在Intent过滤器中,我给出了android.intent.action.PHONE_STATE。因此,基于此,它将执行我在接收器中所做的操作。

在我的应用程序中,我使用Gcm从服务器获取数据。有一个数据有日期和时间。所以我想根据从服务器获取的数据发出警报。当日期和时间与设备日期和时间匹配时,应该会发生这种情况。为此,我写了接收器。

但我不知道从哪里开始服务。因为它也应该在我的应用程序未被使用时运行。

我写得像这样。

<receiver
        android:name="com.domyhome.broadcastreceiver.AlarmReceiver">
</receiver>
<uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>

AlarmReceiver

@Override
public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method s
    List<CalEvent> cts;
    cts = CalEvent.listAll();
    CalEvent cal;
    SimpleDateFormat df = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss");
    String date = df.format(Calendar.getInstance().getTime());
    for(int i=0;i<cts.size();i++)
    {
        cal = cts.get(i);
        if(date.equals(cal.event_start))
        {
            generateNotification(context,"Hi how are you?",cal.event_start);
        }
    }
 }

private void generateNotification(Context context, String message, String time) {
    NotificationManager  mNotificationManager = (NotificationManager) context
                .getSystemService(Context.NOTIFICATION_SERVICE);

        NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
                context).setSmallIcon(R.drawable.ic_stat_gcm)
                .setContentTitle("Reminder")
                .setStyle(new NotificationCompat.BigTextStyle().bigText("Event"))
                .setContentText(time)
                .setDefaults(Notification.DEFAULT_VIBRATE)
                .setSound(Uri.parse("android.resource://" + context.getPackageName() + "/" +R.raw.sounds1));
 }

请有人能给我一个想法吗?

0 个答案:

没有答案