0
在我的應用程序中編程時,我有一個小問題。我正在編寫一項服務,向我顯示我的電話在過去24小時內活動的次數。 我正在通過偵聽屏幕開/關動作來做到這一點,並且我通過拖動按鈕獲得越來越多的接收。Android BroadcastReceiver在偵聽屏幕開/關事件時獲取多個事件
其實我騎上它的模式,所以:
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");
}
}
}