Я, должно быть, неправильно реализовал wakelocks.Вот как я это сделал.Это правильно?
private static final String LOCK_NAME_STATIC="domination.shredAssistant.locationService";
private static volatile PowerManager.WakeLock lockStatic=null;
synchronized private static PowerManager.WakeLock getLock(Context context) {
if (lockStatic==null) {
PowerManager mgr=(PowerManager)context.getSystemService(Context.POWER_SERVICE);
lockStatic=mgr.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
LOCK_NAME_STATIC);
lockStatic.setReferenceCounted(true);
}
return(lockStatic);
}
и метод onStart
//onStart
public void onStart( Intent intent, int startId ) {
super.onStart( intent, startId );
if (running == false) {
Context ctxt=getApplicationContext();
getLock(ctxt).acquire();
running = true;
readResorts();
serviceHandler = new Handler();
serviceHandler.postDelayed( new RunTask(),1000L );
runtest=true;
locupdate(0,0);
}
}
Я не могу понять, почему служба по-прежнему убивается после периода бездействия, даже если я использую getLock(ctxt) .acquire ();Спасибо за вашу помощь!-Dom