6

Serviceで始まるボタンで簡単なウィジェットを作成しようとしています。OnClickPendingIntent()です。私はそれを始めることができますが、私はそれを停止する方法を理解することができません(私はBroadcastReceiverまたは類似のものでそれを行うことができますが、私はハードコードを避けたい)。サービスを起動して停止するためのPendingIntent

これは私のコードです:これを行うには、複数の方法があります

 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!!!! 
     } 

答えて

17

、ここでは1だ:

サービスの onStartCommand()に続いて
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); 

、あなたは「STOP」のために意図行動を確認することができます(おそらくより良い文字列を使用してください)、stopSelf()を呼び出してください。

関連する問題