я успешно разработал приложение для Android, которое сосчитать кнопки питания нажмите с помощью приемника класса и работает в фоновом режиме с обновление-сервис класса и теперь я хочу, чтобы вставить запись в базу данных, когда кто-нибудь нажмите кнопку питания 3 - 5 раз быстро (в секундах может составлять от 2 до 4 секунд). Все работает нормально, но проблема в обслуживании работает в фоновом режиме, поэтому он будет учитывать, когда пользователь случайно нажал кнопку питания (например, на экран телефона вкл. И выкл.). Итак, как остановить этот подсчет случайного или обычного нажатия кнопки питания. также мой вопрос заключается в том, что служба работает в фоновом режиме, я могу сбросить сервис, чтобы создать новый запрос, когда пользователь хочет вставить запись. Спасибо заранее! Вот мой код: -мощность заблокированные в данный момент времени
Главная
{Home.this.startService(new Intent(Home.this, UpdateService.class));}
Мой UpdateService
@Override
public void onCreate() {
super.onCreate();
//register receiver that handles screen on and screen off logic
IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
mReceiver = new MyReceiver(UpdateService.this);
registerReceiver(mReceiver, filter);
}
@Override
public void onDestroy() {
unregisterReceiver(mReceiver);
Log.i("onDestroy Reciever", "Called");
super.onDestroy();
}
@Override
public void onStart(Intent intent, int startId) {
}
MyReceiver
public class MyReceiver extends BroadcastReceiver {
private static int countPowerOff=0;
private boolean screenOff;
private UpdateService updateservice=null;
public MyReceiver (UpdateService UpdateService)
{
this.updateservice=UpdateService;
}
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(Intent.ACTION_SCREEN_OFF))
{
countPowerOff++
}
else if(intent.getAction().equals(Intent.ACTION_SCREEN_ON))
{
}
if(countPowerOff > 3)
{
//record insert
}
}
вы можете дать какой-либо идеи сэра –
я думал, что даю правильное представление для решения вопроса будет более полезным, чем Юст проводки код, который будет Dü работы. –
спасибо sir, но при каждом запросе нажатия кнопки питания он переходит в другое состояние if (countPowerOff> 3) else и вызывает ** resetPowerOffTimeout(); ** –