2015-10-06 2 views
1

Привет, я создал широковещательный приемник, который получает уровень заряда батареи в событии Intent.ACTION_BATTERY_CHANGED. Он работает хорошо, но когда я удаляю это приложение из ram, используя салфетки, удерживая кнопку home, он не получает событие. Моего код радиовещанияAndroid Broadcast не выполняется, когда очищается от RAM

private BroadcastReceiver BatteryReceiver = new BroadcastReceiver() { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     // TODO Auto-generated method stub 
     int level = intent.getIntExtra("level", 0); 
     Toast.makeText(BatteryIndicatorService.this,""+level, Toast.LENGTH_SHORT).show(); 
    } 
}; 

ответ

4

Это может быть сделано, когда ваша широковещательным работать в фоновом режиме для этого вам нужно создать сервисомы этой услугу вы должны определить свой Broadcast.

BatteryIndicatorService.java

public class BatteryIndicatorService extends Service { 
private BroadcastReceiver BatteryReceiver = new BroadcastReceiver() { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     // TODO Auto-generated method stub 
     int level = intent.getIntExtra("level", 0); 
     Toast.makeText(BatteryIndicatorService.this,""+level, Toast.LENGTH_SHORT).show(); 
    } 
}; 

@Override 
public IBinder onBind(Intent intent) { 
    // TODO Auto-generated method stub 
    return null; 
} 

public void onCreate() { 
    // TODO Auto-generated method stub 
    super.onCreate(); 
    // Register Receiver. 
    registerReceiver(BatteryReceiver, new IntentFilter(
      Intent.ACTION_BATTERY_CHANGED)); 
} 

public void onStart(Intent intent, int startId) { 
    // TODO Auto-generated method stub 
    super.onStart(intent, startId); 
} 

@Override 
public void onDestroy() { 
     // TODO Auto-generated method stub 
     super.onDestroy(); 
    } 
} 

и начать его с MainActivity как

MainActivity.java

protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    // Start service in Background 
    startService(new Intent(this, BatteryIndicatorService.class)); 
} 

Определение Служба в Manifest.xml в прикладной тег

manifest.xml

<service 
     android:name="com.ittl.batteryindicator.BatteryIndicatorService" 
     android:enabled="true" > 
</service>