我正在構建一個應用程序,通知將在特定時間響起,之後如果在15分鐘內無人照看時消失。它在我插入設備並運行代碼時起作用。但是,一旦我拔出設備並運行應用程序,通知就可以工作,但如果無人照管,15分鐘後它不會消失。請指教我如何運行應用程序,就像設備插入計算機時的操作一樣。此外,它應該在應用程序被殺時工作。IntentService不起作用
僅供參考,我使用通知,警報管理器,廣播接收器和intentservice。以下是我的代碼片段。
AlarmReceiver.java
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Notification(context, "Wifi Connection On");
Intent background = new Intent(context, BackgroundService.class);
context.startService(background);
}
public void Notification(final Context context, String message) {
// notification codes
}
}
BackgroundService.java
public class BackgroundService extends IntentService {
public BackgroundService() {
super("BackgroundService");
}
@Override
protected void onHandleIntent(Intent intent) {
//countdown 15 minutes and cancel notification automatically
Timer timer=new Timer();
TimerTask task=new TimerTask() {
@Override
public void run() {
// Create Notification Manager
NotificationManager notificationmanager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
// Dismiss Notification
notificationmanager.cancelAll();
}
};
timer.schedule(task, 900000);
}
}
的Manifest.xml
<receiver android:name=".AlarmReceiver" android:process=":remote" />
<service android:name=".BackgroundService" />
請給我一些建議。謝謝。
嘗試使用'AlarmManager'而不是'Timer'。一旦你的服務完成了處理意圖,它將與你的計時器一起銷燬。 – SqueezyMo
嗨,我是初學者。你有沒有一個關於如何在意向服務中實現alarmmanger的例子,因爲我已經有一個在我的主要活動中。 @SqueezyMo – redblackwhite
查看答案。 – SqueezyMo