0

サービスを開始するための私のコードは次のとおりです。

アクティビティの onCreate() でサービスを開始しています。

  Intent svc=new Intent(BeapSoundActivity.this, BackgroundService.class);
               pendingIntent = PendingIntent.getService(BeapSoundActivity.this, 0, svc, 0);

               AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);

               Calendar calendar = Calendar.getInstance();
               calendar.setTimeInMillis(System.currentTimeMillis());
               calendar.add(Calendar.SECOND, 2);
               alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 10*1000, pendingIntent);

電話してもサービスを停止できない

stopService();

ここに私のサービスクラスがあります:

public class BackgroundService extends Service{

//   private static final String TAG = null;
//   MediaPlayer player;
     MediaPlayer mMediaPlayer;
     String  strResponse;
     int i=0;

     static {

//         StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();

           StrictMode.setThreadPolicy( new StrictMode.ThreadPolicy.Builder().permitAll().build());
       }
    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        mMediaPlayer = new MediaPlayer();
        Log.e("Oncreate","oncreate");


    }
    public int onStartCommand(Intent intent, int flags, int startId) {
//        player.start();
        Log.e("Onstartcommand","onstartcommand");

            pendingCount();

        return 1;
    }

    public void onStart(Intent intent, int startId) {
        // TO DO
//      super.onStart(intent,startId);



        Log.e("Onstart","onstart");
//      pendingCount();
    }
    public IBinder onUnBind(Intent arg0) {
        // TO DO Auto-generated method
        return null;
    }

    public void onStop() {

     this.stopSelf();


    }
    public void onPause() {

    }
    @Override
    public void onDestroy() {

         super.onDestroy();

            this.stopSelf();

//        player.stop();
//        player.release();
    }

    @Override
    public void onLowMemory() {

    }


}

    public void pendingCount(){

            my operations during the service

                 }


    }


}

onDestroy() で stopSelf() も試しましたが、うまくいきませんでした。

この問題を解決する方法を教えてください。

4

4 に答える 4

0

このコードを使用してみてください。

stopService(new Intent(MainActivity.this,BackgroundService.class));
于 2013-08-31T10:57:41.590 に答える
0

stopService()別のアクティビティから呼び出す必要があります。または、必要な作業が終了したときにstopSelf()、サービス ( ではなく) を呼び出すことができます。onDestroy()

于 2013-08-31T10:46:36.613 に答える