6

OnClickPendingIntent() ile Service'u başlatan bir düğmeyle basit bir pencere aracı yapmaya çalışıyorum. İyi başarabilirim ama bunu durdurmanın bir yolunu anlayamıyorum (Biliyorum bunu BroadcastReceiver ya da benzer bir şeyle yapabilirim ama hardcode'tan kaçınmak istiyorum). hizmet en onStartCommand() üzerindeBir Hizmeti başlatmak ve durdurmak için PendingIntent

Intent intent = new Intent(context, myService.class); 

    RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.my_widget); 

    if (ismyserviceup(context)) { 
     intent.setAction("STOP"); 
    } 
    PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, 0);     
    views.setOnClickPendingIntent(R.id.my_button, pendingIntent); 

Sonra "STOP" için niyet eylemi kontrol edebilirsiniz:

 Intent intent = new Intent(context, myService.class); 
     PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, 0); 

     RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.my_widget); 

     if (!ismyserviceup(context)) { 
      views.setOnClickPendingIntent(R.id.my_button, pendingIntent); 
     } else { 
      // i need to stop it!!!! 
     } 

cevap

17

Bunu yapmanın birden çok yolu burada biri vardır:

Bu

benim kodudur (muhtemelen daha iyi bir dize kullanmalısınız) ve stopSelf()'u arayın.