0

Android開発では、Brodcastreceiverによって開始されたサービスがあり、サービスが開始されて適切にタスクを実行しましたが、stopself()を使用してクラスからサービスを停止しようとすると。タスクを3回実行するまで停止しませんでした。その後、ここで停止するのは、onStartサービスとonDestroy()のコードです。

@Override
    public void onStart(Intent intent, int startid) {
        player.start();
        SystemClock.sleep(30000);
        onDestroy();
    }

    @Override
    public void onDestroy() {
        player.stop();
    this.stopSelf();}   

BrodcastReceiverからサービスを開始したときのコードは次のとおりです。

Intent intent =new Intent(context,RingService.class);
context.startService(intent);

サービスが自動的に終了したらすぐにサービスを停止する方法はありますか、それともBrodcastRecevicerにサービスを停止させる必要がありますか?

この問題を解決するためのヘルプやリダイレクトは完全に高く評価されます

よろしく

4

1 に答える 1

0

onDestroy()呼び出しの代わりにonStartの最後にstopSelf()を呼び出し、onDestroy()からstopSelf()呼び出しを削除するだけです。

于 2012-05-11T15:52:19.227 に答える