2016-04-14 68 views
0

Uygulamam service bir onTaskRemoved() yönteminden bir yayın gönderiyorum. Ama ben broadcastRecieverbroadcast almıyor. Bu APP_REMOVED_FROM_RECENTS.android yayını almıyor

+0

biçimlendirilmiş kod gönderebilir miyim? API'den –

+0

: Servis şu anda çalışıyorsa ve kullanıcı hizmetin uygulamasından gelen bir görevi kaldırdıysa buna denir. ServiceInfo.FLAG_STOP_WITH_TASK'yi ayarladıysanız, bu geri bildirimi almayacaksınız; bunun yerine, servis durdurulacak. 'uygulamanızın beklentileri tam olarak karşıladığından emin misiniz? – Opiatefuchs

+0

no ServiceInfo.FLAG_STOP_WITH_TASK –

cevap

1

Eğer niyet hakkında işlem ayarı değiliz çünkü olabilir hariç fakat ekstra olarak benim kod

@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"; 

i bütün yayın alıyorum olduğunu. Buna kodunuzu değiştirin ve eğer çalışırsa bkz:

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

hayır çalışmıyor, onTaskRemoved() bir yayın oluşturmak mümkün mü? –