2015-06-29 57 views
1

我做在Android Studio中的一個小程序,我需要幫助,在此代碼:Android的工作室:在IntentFilter的需要幫助

Intent myIntent = new Intent(this , NotifyService.class); 
    PendingIntent pendingIntent = PendingIntent.getService(this, 0, myIntent, 0); 
    AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); 
    Calendar calendar = Calendar.getInstance(); 
    alarmManager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + AlarmManager.INTERVAL_FIFTEEN_MINUTES, AlarmManager.INTERVAL_DAY, pendingIntent); 
    BroadReceiver receiver = new BroadReceiver(); 
    IntentFilter filter = new IntentFilter("I NEED HELP HERE!"); 
    registerReceiver(receiver, filter); 
    return super.onStartCommand(intent, flags, startId); 

因此,在該行我需要幫助這裏,當我寫Intent.ACTION_AIRPLANE_MODE_CHANGED它應該是運行,但我需要上面的代碼來執行ACTION_AIRPLANE_MODE_CHANGED的功能。基本上,每15分鐘後臺程序(此代碼在那裏)應該打開通知。

如果你需要更多的代碼,只需說。

回答

0

首先。 AlramManagerPendingIntent包含Intent,當警報被觸發時它將被觸發。所以,你應該改變:

Intent myIntent = new Intent(this , NotifyService.class); 

這個

Intent myIntent = new Intent(this , BroadReceiver.class); 

在這裏你可以找到更詳細的例子 Google's alarm guide

如果你想使用隱式意圖,那麼你可以嘗試這樣的:

Intent myIntent = new Intent(); 
myIntent.setAction("your_action"); 
PendingIntent pendingIntent = PendingIntent.getService(this, 0, myIntent, 0); 

// setup AlarmManager 

BroadReceiver receiver = new BroadReceiver(); 
IntentFilter filter = new IntentFilter("your_action"); 
registerReceiver(receiver, filter); 
+0

但我不想要一個行動,我想要的是上面的代碼工作就像一個行動。 –

+0

而且顯然希望這個在後臺工作 –

+0

@AntónioPaulo行動有什麼問題? – MightySeal