У меня проблема с litle при программировании в моем приложении. Я программирую услугу, которая показывает, сколько раз мой телефон был активным за последние 24 часа. Я делаю это, слушая экранное действие вкл/выкл, и я получаю все больше и больше, пуская кнопку.Android BroadcastReceiver получает события multipe при прослушивании событий включения/выключения экрана
На самом деле я достаем шаблон в нем, так:
logs getherd = logs getterd in the previus button puss * 2 - 8
Мой Reciver класс:
package com.example.balinator.androidprojekt.services.screenonservice;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.hardware.display.DisplayManager;
import android.os.Bundle;
import android.os.PowerManager;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.view.Display;
import com.example.balinator.androidprojekt.database.Database;
import java.util.Set;
/**
* Created by Balinator on 2016. 12. 15..
*/
public class MyScreenOnOffReciver extends BroadcastReceiver {
private static final String tag = "MyScreenOnOffReciver";
private Database db;
@Override
public void onReceive(Context context, Intent intent) {
String state = intent.getAction();
if (state.equals(Intent.ACTION_SCREEN_ON)) {
if(db == null){
db = new Database(context);
}
db.open();
long id = db.getService(MyScreenOnService.sName).getId();
db.createServiceLog(id,System.currentTimeMillis() + ":on");
db.close();
Log.d(tag,"screen on log");
}else if(state.equals(Intent.ACTION_SCREEN_OFF)) {
if (db == null) {
db = new Database(context);
}
db.open();
long id = db.getService(MyScreenOnService.sName).getId();
db.createServiceLog(id, System.currentTimeMillis() + ":off");
db.close();
Log.d(tag, "screen off log");
}
}
}