Android - 在屏幕关闭或屏幕超时时终止应用程序

Android - Kill an app when screen turned off or screen times out

我想终止/完全关闭一个应用程序,这样即使在我按下屏幕转动 on/off 按钮或屏幕超时时,它也不会 运行 在后台运行。我在互联网上的任何地方都找不到解决方案。你们能帮我一个代码片段吗?谢谢

首先检查屏幕是否在后台运行的服务中被锁定:

KeyguardManager myKM = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
if( myKM.inKeyguardRestrictedInputMode()) {
 //it is locked
  getActivity().finish();
  System.exit(0);
} else {
 //it is not locked
}

然后如果屏幕被锁定,您只需终止该应用程序。 希望这会有所帮助。

你可以参考这个link来检测屏幕关闭 Screen off Broadcast receiver 要终止应用程序,您可以使用以下代码

int pid = android.os.Process.myPid();
android.os.Process.killProcess(pid);

要使 activity 像吐司一样(出现即走),请将以下代码添加到清单中:

<activity   android:name=".YourActivity"
            android:label="YourActivityLabel"
            android:taskAffinity=""
            android:clearTaskOnLaunch="true"
            android:excludeFromRecents="true"
            android:finishOnTaskLaunch="true"
            android:noHistory="true"
            android:launchMode="singleTask">
</activity>