2016-12-21 14 views
0

У меня проблема с 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"); 
     } 
    } 
} 

ответ

0

Я думаю, что вы зарегистрировали свой приемник в 2 раза

  1. На деятельности
  2. Показатель

Зарегистрируйте ваш приемник один раз, используя любой из вышеперечисленных .. затем он ll b fyn