0

デバイスの起動時に実行されるレシーバーとサービスがありますが、ユーザーがデバイスの電源をオフにしないとしましょう。これをどのように処理すればよいですか?

レシーバー/サービスからalarmmanagerでステータスバー通知をスケジュールするにはどうすればよいですか?

package it.bloomp.service;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;

public class EventsNotificationService extends Service {

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        System.out.println("Service created.");
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        System.out.println("Service destroyed.");
    }

    @Override
    public void onStart(Intent intent, int startId) {
        super.onCreate();
        System.out.println("Service started.");
    }
}

..。

package it.bloomp.service;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class EventsNotificationReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
            Intent serviceIntent = new Intent(context, EventsNotificationService.class);
            context.startService(serviceIntent);
        }
    }
}
4

1 に答える 1

0

要件に適した他の種類の放送受信機を使用できます。または、Timerクラスを使用して、タスクを定期的に実行する期間を設定できます。

Timer time;
time..scheduleAtFixedRate(new TimerTask() {            
        @Override
        public void run() {
           //Your task         
        }
    }, 0/*Start delay*/, 1000/*Delay period*/);

更新: 通知をスケジュールするには、次のようなことを行うことができます。

Intent intentSafety_Check_Service = new Intent(Activity_Add_Safety_Check.this, Safety_Check_Service.class);

    pendingIntent = PendingIntent.getService(Activity_Add_Safety_Check.this,                Integer.parseInt(currCheckID), intentSafety_Check_Service, 0);

    AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);

    Calendar calendar = Calendar.getInstance();

    calendar.setTimeInMillis(/*Your alarm date converted in milliseconds*/);

    alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
于 2012-06-05T06:06:21.773 に答える