2016-04-14 15 views
0

私はonTaskRemoved()メソッドからブロードキャストを送信していますserviceです。しかし、私はbroadcastRecieverbroadcastを取得していません。これは、私はあなたが意図ではなく、余分なようにアクションを設定していないので、それがかもしれAPP_REMOVED_FROM_RECENTS.アンドロイドはブロードキャストを受信して​​いません

+0

フォーマット済みのコードを投稿できますか? –

+0

from API: 'サービスが現在実行中で、ユーザーがサービスのアプリケーションから取得したタスクを削除した場合に呼び出されます。 ServiceInfo.FLAG_STOP_WITH_TASKを設定した場合、このコールバックは受信されません。代わりに、サービスは単に停止されます。あなたのアプリが期待をフルに満たしていることは確かですか? – Opiatefuchs

+0

いいえ私はServiceInfo.FLAG_STOP_WITH_TASKを –

答えて

1

以外のすべての放送を受信して​​います私のコード

@Override 
     public void onTaskRemoved(Intent rootIntent) { 
      super.onTaskRemoved(rootIntent); 

      Log.e("TaskRemoved","TaskRemoved"); 
       commonSessionManager.setConnected(false); 
      broadCastUpdate(GymMainActivity.APP_REMOVED_FROM_RECENTS); 
     } 

     public void broadCastUpdate(String action){ 

      Intent intent=new Intent(); 
      intent.putExtra(GymMainActivity.APP_REMOVED_FROM_RECENTS,action); 
      sendBroadcast(intent); 
     } 

    private BroadcastReceiver mGattUpdateReciever = new BroadcastReceiver() { 
       @Override 
       public void onReceive(Context context, Intent intent) { 

        final String action = intent.getAction(); 

        if (WRONG_DATA.equalsIgnoreCase(action)) { 
         Toast.makeText(GymMainActivity.this, "Please measure your vitals again", Toast.LENGTH_SHORT).show(); 
         isFalseDataSent = true; 
        } 

        if (ACTION_GATT_CONNECTED.equalsIgnoreCase(action)) { 
         Toast.makeText(GymMainActivity.this, "connected", Toast.LENGTH_SHORT).show(); 

         runOnUiThread(new Runnable() { 
          @Override 
          public void run() { 
           if (!isFinishing()) { 
            ShowConnectDialog(); 
           } 


          } 
         }); 

        } else if (ACTION_GATT_DISCONNECTED.equalsIgnoreCase(action)) { 
         Toast.makeText(GymMainActivity.this, "disconnected", Toast.LENGTH_SHORT).show(); 
        } else if (ACTION_DATA_AVAILABLE.equalsIgnoreCase(action)) { 
         connectDialog.dismiss(); 
         String[] result = intent.getStringArrayExtra(EXTRA_DATA); 
         for (int i = 0; i < result.length; i++) { 
          Log.e("result " + i, result[i]); 
         } 

         Log.e("isDisplayed", isDisplayed + ""); 
         if (!isDisplayed) { 
          if (isFalseDataSent) { 
           mBluetoothController.powerOff(); 
           isFalseDataSent = false; 
          } 

          commonSessionManager.setConnected(true); 
          Intent vitalDataIntent = new Intent(GymMainActivity.this, GymVitalDisplayActivity.class); 
            vitalDataIntent.putExtra("userDataBundle",userDataBundle()); 
            vitalDataIntent.putExtra("vitalData", result); 
            startActivity(vitalDataIntent); 
            finish(); 
          isDisplayed = true; 
         } 

        } 

        if(action.equalsIgnoreCase(APP_REMOVED_FROM_RECENTS)){ 

         Toast.makeText(GymMainActivity.this,"APP_REMOVED_FROM_RECENTS",Toast.LENGTH_SHORT).show(); 
         btnScan.setVisibility(View.VISIBLE); 

         if(btnConnect.getVisibility()==View.VISIBLE){ 
          btnConnect.setVisibility(View.GONE); 
         } 

         if(txtConnected.getVisibility()==View.VISIBLE){ 
          txtConnected.setVisibility(View.GONE); 
         } 
        } 
       } 

      }; 

private static IntentFilter makeGattUpdateIntentFilter() { 
       final IntentFilter intentFilter = new IntentFilter(); 
       intentFilter.addAction(ACTION_GATT_CONNECTED); 
       intentFilter.addAction(ACTION_GATT_DISCONNECTED); 
       intentFilter.addAction(ACTION_DATA_AVAILABLE); 
       intentFilter.addAction(WRONG_DATA); 
       intentFilter.addAction(APP_REMOVED_FROM_RECENTS); 
       return intentFilter; 
      } 


       public final static String ACTION_GATT_CONNECTED = 
        "com.example.demo.le.ACTION_GATT_CONNECTED"; 
      public final static String ACTION_GATT_DISCONNECTED = 
        "com.example.demo.le.ACTION_GATT_DISCONNECTED"; 
      public final static String ACTION_DATA_AVAILABLE = 
        "com.example.demo.le.ACTION_DATA_AVAILABLE"; 
      public final static String EXTRA_DATA = 
        "com.example.demo.le.EXTRA_DATA"; 
      public final static String WRONG_DATA = 
        "com.example.demo.le.WRONG_DATA"; 
      public final static String APP_REMOVED_FROM_RECENTS="com.example.demo.le.APP_REMOVED_FROM_RECENTS"; 

です。あなたのコードをそれに変更し、それが動作するかどうかを確認してください:

public void broadCastUpdate(String action){ 
    Intent intent=new Intent(action); 
    sendBroadcast(intent); 
} 
+0

申し訳ありませんが動作していない、それはonTaskRemoved()からブロードキャストを生成することは可能ですか? –

関連する問題