作成しようとしている Android コードに関して、少し問題があります。私がやろうとしているのは、ユーザーが電話のロックを解除したい場合、およびプログラムが最初に起動したときに 1 を出力し、ユーザーが画面ロックを押して電話をロックしたときに 0 を出力することです。これは Android のライフサイクルに関係していると思ったので、onPause と onResume を使用してみましたが、私のプログラムは 0 しか出力せず、1 を出力しませんでした。logTime メソッドは単に 1 または 0 を出力し、MainActivity の onCreate メソッドは onResume() を 1 回呼び出します。これが私のコードです:
主な活動:
protected void onPause(){
if(ScreenReceiver.screenOn){
logTime(ScreenReceiver.screenOn);
super.onPause();
}
protected void onResume()
if(!ScreenReceiver.screenOn){
logTime(!ScreenReceiver.screenOn);
super.onResume();
}
スクリーンレシーバー:
public class ScreenReceiver extends BroadcastReceiver{
public static boolean screenOn;
@Override
public void onReceive(Context context, Intent intent){
if(intent.getAction().equals(Intent.ACTION_SCREEN_OFF)){
screenOn = false;
}
else if(intent.getAction().equals(Intent.ACTION_SCREEN_ON)){
screenOn = true;
}
}
}
なぜ0だけを出力するのかわかりません。誰かが理由を知っているでしょうか?ありがとう!