У меня есть служба, в которой я зарегистрировал простой широковещательный приемник, чтобы проверить, не подключено или не подключено устройство от зарядного устройства. Я начал службу по телефону,Проблема при создании BroadcastReceiver внутри службы
Intent intent = new Intent(MyActivity.this,TestReceiverService.class);
startService(intent);
TestReceiverService.class
public class TestReceiverService extends Service {
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
}
@Override
public void onCreate() {
super.onCreate();
registerTestReceiver();
}
private void registerTestReceiver() {
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(mTestReceiver, intentFilter);
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
public BroadcastReceiver mTestReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Event triggered--------", Toast.LENGTH_SHORT).show();
}
};}
Но я не получил тост, когда устройство подключено/отключено. Я попытался назвать этот широковещательный приемник непосредственно из активности, и он работал. Но внутри службы он не работает. Я не очень хорошо знаком с сервисом. Пожалуйста, предложите решение
Заранее спасибо.
OnCreate будет звоните только один раз, поэтому он будет выполняться один раз .. всякий раз, когда любой клиент вызывает startService() или bindService(), тогда служба вернет доступное связующее, что означает, что следующий раз больше не будет выполняться onCreate() снова, поэтому для вашего случая этот тост отобразился только один раз –
Вы добавили свою услугу в свой androidmanifest.xml? –