我有一項服務,在該服務中,我已經註冊了一個簡單的廣播接收器來檢查設備是否從充電器插入/拔出。我通過調用啓動該服務,內部創建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中添加了你的服務嗎? –