0
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);

上記のコードを使用して、mt onCreate() でサービスを開始しています。

ボタンをクリックしてアクティビティを変更したときに、このサービスを停止したいだけです

I used this line in my Button Click

    stopService(new Intent(BeapSoundActivity.this, BackgroundService.class));

しかし、それは私にとってはうまくいきませんでした

これが私のBackGroundServiceクラスです

import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONObject;

import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.RingtoneManager;
import android.net.Uri;
import android.os.IBinder;
import android.os.StrictMode;
import android.util.Log;

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() {

    }
    public void onPause() {

    }
    @Override
    public void onDestroy() {
//        player.stop();
//        player.release();
    }

    @Override
    public void onLowMemory() {

    }

    public void playSound(Context context) throws IllegalArgumentException, SecurityException, IllegalStateException,
    IOException {
  Uri soundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
//   mMediaPlayer = new MediaPlayer();
  mMediaPlayer.setDataSource(context, soundUri);
  final AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
  if (audioManager.getStreamVolume(AudioManager.STREAM_ALARM) != 0) {
    mMediaPlayer.setAudioStreamType(AudioManager.STREAM_ALARM);
    mMediaPlayer.setLooping(true);
    mMediaPlayer.prepare();
    mMediaPlayer.start();

}
}

    public void pendingCount(){
         DefaultHttpClient httpClient = new DefaultHttpClient();


           HttpGet post = new HttpGet("http://mybusinessapp2.testshell.net/api/Orders");

           post.addHeader("UserName", "info@mybusinessapp.com");
         post.addHeader("Password", "c7d7cdf598be88a21a477842ebfa5ca5");

         ResponseHandler<String> resHandler = new BasicResponseHandler();

              String post_response = null;
            try {
                post_response = httpClient.execute(post,resHandler);
            } catch (ClientProtocolException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
              Log.e("resp",post_response);

              try{
                    JSONObject jobject=new JSONObject(post_response);

                     strResponse= jobject.getString("Count");


              }
              catch(Exception e){
                  e.printStackTrace();
              }

              Log.e("tv",""+BeapSoundActivity. pending_number);
             try{ 
               BeapSoundActivity. pending_number.setText(strResponse);

//              int pending=Integer.parseInt(BeapSoundActivity.pending_number.getText().toString());

//               Log.e("counter",""+pending);
             }
             catch(NullPointerException e){
                 e.printStackTrace();
             }
             int pending=Integer.parseInt( strResponse);
                 if(pending==0){

                      mMediaPlayer.stop();
                      mMediaPlayer = new MediaPlayer();
                 }


                 if(pending>0){


                        try {
                            playSound(BackgroundService.this);
                        } catch (IOException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    catch (IllegalArgumentException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (SecurityException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (IllegalStateException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();



                 }
                 }


    }


}

この問題を解決するのを手伝ってください

前もって感謝します

4

1 に答える 1