私のコードでは、デバイスがロックされたときに起動されるインテントを理解しようとしています。
例:アクティビティが実行中で、電源ボタンを押して電話をロックするとします。INTENT.ACTION_SCREEN_OFFが起動されます。アクティビティが一時停止され、画面が空白になります。
だから私が欲しいのは、デバイスがユーザーによってロックされているときはいつでも、私は私の活動を終了したくないが、ユーザーがホームボタンまたは戻るボタンを押すと私は活動を終了している。そのために私はコードを書きましたが、それは機能していません。
私が使用したコード
public void onResume()
{
super.onResume();
m_ScreenLocked = false;
// Intent and receiver to listen to screen lock
m_IntentFilter = new IntentFilter(Intent.ACTION_SCREEN_ON);
m_IntentFilter.addAction(Intent.ACTION_SCREEN_OFF);
m_BroadcastReceiver = new ScreenStateBroadcastReceiver();
registerReceiver(m_BroadcastReceiver, m_IntentFilter);
}
private final class ScreenStateBroadcastReceiver extends BroadcastReceiver
{
@Override
public void onReceive(final Context context, final Intent intent)
{
if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF))
{
m_ScreenLocked = true;
}
else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON))
{
//other stuff
}
}
}
@Override
public void onStop()
{
super.onStop();
m_NoteManagerObject.setPageViewRunning(false);
if (!m_ScreenLocked)
{
unregisterReceiver(m_BroadcastReceiver);
finish();
}
else
{
unregisterReceiver(m_BroadcastReceiver);
}
}