如何判断 Android 何时关闭?
我可以将功能放入已经以 root 身份运行的 C++ 守护程序中,或者放入非特权 Java 应用程序中。
我能区分关机和重启吗?(我只关心关机,重启时一定不能误报。)
如何判断 Android 何时关闭?
我可以将功能放入已经以 root 身份运行的 C++ 守护程序中,或者放入非特权 Java 应用程序中。
我能区分关机和重启吗?(我只关心关机,重启时一定不能误报。)
使用广播接收器:
@Override public void onReceive(Context context, Intent intent) {
if (ACTION_SHUTDOWN.equals(intent.getAction()) || QUICKBOOT_POWEROFF.equals(intent.getAction())) {
// Do something..
}
}
将意图过滤器应用于清单声明的广播接收器以侦听两个操作:
<action android:name="android.intent.action.ACTION_SHUTDOWN"/>
<action android:name="android.intent.action.QUICKBOOT_POWEROFF"/>
在 initrc 中触发你的 c 服务:
按属性触发:
在属性上:sys.shutdown.requested=*
停止 cnss-daemon
关闭关键触发
shutdown <shutdown_behavior>
设置服务进程的关闭行为。如果未指定,则在关闭过程中使用 SIGTERM 和 SIGKILL 终止服务。shutdown_behavior 为“critical”的服务在关机期间不会被杀死,直到关机超时。当关闭超时时,即使标记为“关闭严重”的服务也会被杀死。当关闭启动时标记为“关闭关键”的服务未运行时,它将启动。