カスタムロックスクリーンを使用してカスタムホーム画面を作成しています。
画面がオフになると、ロック画面(アクティビティ)を起動しますが、ロック画面が( "finish()"によって)強制終了されると、実際のアクティビティではなく、ホーム画面apkの最後のアクティビティに戻ります(apk)画面が消える直前に表示されていました。
たとえば、電卓アプリケーションまたは時計アプリケーションを使用していて、ロック画面がオンになっている場合、ロック画面のアクティビティが終了すると、電卓/時計に戻りません。
ここで、画面のオン/オフイベントを受信するためのロック画面(メインランチャーアクティビティ)を登録します。
private void doLockScreenOperations()
{
KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE);
lock.disableKeyguard();
IntentFilter lockfiFilter = new IntentFilter();
lockfiFilter.addAction(Intent.ACTION_SCREEN_OFF);
lockfiFilter.addAction(Intent.ACTION_SCREEN_ON);
getApplicationContext().registerReceiver(new LockScreenReceiver(), lockfiFilter);
}
これがレシーバー自体で、ロック画面のアクティビティを起動します。
public class LockScreenReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
String action = intent.getAction();
if (action.equals(Intent.ACTION_SCREEN_OFF))
{
if (LockScreenActivity.isLockScreenAlive == false)
{
Intent lockIntent = new Intent(context, LockScreenActivity.class);
lockIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(lockIntent);
}
}
else if (action.equals(Intent.ACTION_SCREEN_ON))
{
}
}
}
LockScreenActivityは、現時点では、ボタンがクリックされたときにfinish()と呼ばれるボタンを使用する単純なアクティビティです。
これを修正する方法がわかりません。
前もって感謝します!