У меня есть следующий проект в моем приложении: у меня есть одно действие, которое устанавливает повторяющийся сигнал тревоги, который запускает приемник, который начинает мое обслуживание. Каждую минуту. В моем сервисе я установил Start Sticky, но как только Android решит убить мой сервис, я не могу его перезапустить. Это Android 4.4.2 Не могли бы вы мне помочь? Вот мой код:Регенерирующий дизайн обслуживания android
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
Intent i1 = new Intent(MainActivity.this, AlarmReceiver.class);
PendingIntent pi = PendingIntent.getBroadcast(MainActivity.this, 0, i1, PendingIntent.FLAG_UPDATE_CURRENT);
am.setRepeating(AlarmManager.RTC_WAKEUP, 0, 60 * 1000, pi);
}
здесь приемник
public void onReceive(Context arg0, Intent arg1) {
// For our recurring task, we'll just display a message
Log.d(Constants.TAG, "Starting Service");
Intent intent = new Intent(arg0, MyLocationService.class);
arg0.startService(intent);
}
и обслуживание:
private static PowerManager.WakeLock wl;
private static OkHttpClient client;
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d(Constants.TAG, "Service onStartCommand");
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, Constants.TAG);
wl.acquire();
client = new OkHttpClient();
new GetLocation(MyLocationService.this).execute();
return START_STICKY;
}
какие-либо идеи, как решить эту проблему?
спасибо. Но, я думаю, я решил это с помощью AlarmManager.setExact(), поэтому я устанавливал будильник каждый раз, когда моя служба запускается в OnStartCommand. – Traabefi
. Вы все равно столкнетесь с проблемами управления питанием, если вы не управляете своими wakelocks, как описано. –
Есть ли разница между приобретением wakelock в самом сервисе и BroadcastReceiver? – Traabefi