이벤트 리스너를 구현하는 방법을 알아 봅니다. (적절한 용어인지 확실하지 않습니다.) 일단 앱을 시작한 후 휴대 전화의 전원 상태를 수신하려면 서비스를 원합니다. . 나는 안드로이드가 어떻게 이런 상황을 처리하는지에 대해 확신 할 수 없으므로 무엇을 검색해야할지 정말로 모른다. 브로드 캐스트 수신기를 사용하는이 코드로 작업했습니다.Android : 지속적인 이벤트 리스너 만들기
BroadcastReceiver receiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
unregisterReceiver(this);
int plugged = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
if (plugged == BatteryManager.BATTERY_PLUGGED_AC) {
// on AC power
Toast.makeText(getApplicationContext(), "AC POWER", Toast.LENGTH_LONG).show();
} else if (plugged == BatteryManager.BATTERY_PLUGGED_USB) {
// on USB power
Toast.makeText(getApplicationContext(), "USB POWER", Toast.LENGTH_LONG).show();
startActivity(alarmClockIntent);
} else if (plugged == 0) {
Toast.makeText(getApplicationContext(), "On Battery", Toast.LENGTH_LONG).show();
} else {
// intent didnt include extra info
}
}
};
IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(receiver, filter);
코드가 정상적으로 작동합니다. 내 애플 리케이션을 열면 그것은 전화 전원의 현재 상태가 무엇인지 축하합니다. 여기
는 내가 뭘하려고 오전입니다 :- 사용자가 응용 프로그램을 실행, 그것은 효과적으로 서비스
- 전화 사용에 대한 갈 수있는 사용자에 돌고 있지만, 한 번이 연결되어 에서 내 서비스가이를 잡아서 위의 코드를 사용합니다
위의 목표를 달성하기 위해이 코드를 어떻게 적용합니까?
당신은 라인unregisterReceiver(this);
이 방법을 제거하여 배터리 상태에 대한 리스너를에 유지할 수
사용자가 AC/USB 전원에 플러그를 꽂았지만 사용자는 플러그 할 때 코드에서 동일한 동작을 트리거하는 방법을 묻고 있습니다. 현재 앱을 사용하고 있지 않습니다 ('휴대 전화 사용'이라는 단어에서)? – momo
네, 그렇습니다. 올바른 전문 용어가 확실하지 않습니다. – Nick