У меня есть услуга InfoReceiver
.Эта служба запускается, когда приложение запускается и продолжает работать, когда приложение закрыто. Также я добавил приложение, которое запускается при загрузке завершено. Служба будет вызывать нужный мне код каждые 82 миллисекунды (24 часа).Я не знаю, как заставить нить спать, пока телефон выключен.Также я хочу уничтожить завершенную услугу через 120 часов.вот мой код
Заранее спасибо!
InfoReceiver.java
public class InfoReceiver extends Service {
@Override
public void onCreate()
{
super.onCreate();
//do something code
}
}
MyBroadcastreceiver.java
public class MyBroadcastReceiver extends BroadcastReceiver {
private Context mContext;
@Override
public void onReceive(Context context, Intent intent) {
mContext = context;
Calendar cal = Calendar.getInstance();
// add 5 minutes to the calendar object
cal.add(Calendar.SECOND, 84000);
Intent startServiceIntent = new Intent(context, InfoReceiver.class);
PendingIntent startPIntent = PendingIntent.getBroadcast(context, 0, startServiceIntent, 0);
AlarmManager am = (AlarmManager) mContext.getSystemService(mContext.ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), startPIntent);
}
}
Файл манифеста
<service android:name=".InfoReceiver"
android:enabled="true">
<intent-filter>
<action android:name=".InfoReceiver"/>
</intent-filter>
</service>
<receiver android:process=":remote" android:name=".MyBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>