2016-12-21 4 views
0

アプリケーションでプログラミング中に問題が発生しました。私は24時間以内に電話が何回アクティブになったかを示すサービスをプログラムしています。 私は画面のオン/オフの動作を聞いてこれをやっています、そして、私はボタンを叩いてますます受信しています。Android BroadcastReceiverは、画面のオン/オフイベントをリッスンしながらマルチプルイベントを取得します。

実は私は、その中にパターンをGAT:

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. マニフェスト

上記のいずれかを使用して受信機を1回登録すると、fyn

関連する問題