3

私はこれを行うことができるかどうか疑問に思っています.アクティビティが起動したときに呼び出され、定期的に実行する必要があるサービスを実装したい.閉じるか押し戻すことでアクティビティを停止すると、サービスが停止し、アラームマネージャが呼び出されないようにする必要があります.活動再開前のサービス。もう1つ、サービスが動作して結果をアクティビティに返すことができるデータを送信したいと思います。現在、私はこのようにやっています.....

class MyService extends Service{

}

class MyScheduler extends BroadCastReceiver{

//Here alarm manager and pending intent is initialized to repeat after regular intervals.

}

class MyActivity extends Activity{

 onCreate(){

    //here i am binding the service

 }

}

MyBrodcastReceiver がマニフェストに追加されます

助けて、それを行う方法を提案してください?

4

1 に答える 1

9

開始する場合:

this.startService(new Intent(this, MyService.class));

停止する場合:

this.stopService(new Intent(this, MyService.class));

次のサンプルのように、間隔を空けて BrodcastReceiver を定期的に呼び出すサービスを作成します。

あなたのサービスで:

// An alarm for rising in special times to fire the pendingIntentPositioning
private AlarmManager alarmManagerPositioning;
// A PendingIntent for calling a receiver in special times
public PendingIntent pendingIntentPositioning;

@Override
        public void onCreate() {
            super.onCreate();

            alarmManagerPositioning = (AlarmManager) getSystemService
                    (Context.ALARM_SERVICE);

            Intent intentToFire = new Intent(
                    ReceiverPositioningAlarm.ACTION_REFRESH_SCHEDULE_ALARM);

            pendingIntentPositioning = PendingIntent.getBroadcast(
                    this, 0, intentToFire, 0);



        };


@Override
    public void onStart(Intent intent, int startId) {

            long interval = 10 * 60 * 1000;
            int alarmType = AlarmManager.ELAPSED_REALTIME_WAKEUP;
            long timetoRefresh = SystemClock.elapsedRealtime();
            alarmManagerPositioning.setRepeating(alarmType,
                    timetoRefresh, interval, pendingIntentPositioning);

    }
于 2013-04-27T06:59:28.380 に答える