Van*_*ani 1 android android-intent
我想在获得BOOT_COMPLETE意图后开始服务.在HTC资源管理器中有2个重启选项,分别是'poweroff'和'restart'.当我使用'restart'时,我正确地获得BOOT_COMPLETE意图.但是当我使用'poweroff'时没有获得BOOT_COMPLETE意图,所以我无法启动服务.他们的任何意图只有在HTC重启后才能获得?
我一直在谷歌上冲,找不到任何暗示.我卡住了请帮帮我
我<action android:name="android.intent.action.BOOT_COMPLETED"/>在清单中使用了这段代码但没有用
提前致谢
一些HTC设备可以启用"快速启动"功能,更像是深度休眠而不是真正的重启,因此不应该提供BOOT_COMPLETE意图.还要确保SD卡上没有安装该应用程序,因为它可能因此未收到BOOT_COMPLETED.
这可能也很有趣:
http://commonsware.com/blog/2011/07/13/boot-completed-regression-confirmed.html
http://arthurfmay.blogspot.jp/2011/06/broadcastreceiver-bootcompleted-and.html
特别是在提到"快速启动"选项时:
http://groups.google.com/group/android-developers/browse_thread/thread/56562e4de4919dc6
编辑:
如何简单地使用:
Intent.ACTION_SCREEN_ON
Run Code Online (Sandbox Code Playgroud)
然后,您可以检查服务是否正在运行:
public static boolean ServiceRunning(Context cx)
{ ActivityManager manager = (ActivityManager) cx.getSystemService(Context.ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE))
{ if ("<<<service name goes here>>>".equals(service.service.getClassName()))
{ return true;
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
如果它不只是启动它:
public static void ServiceCheck(Context cx)
{ if(ServiceRunning(cx) == false)
{ Intent svc = new Intent(".<<<Servicename>>>");
cx.startService(svc);
Log.i("Service-Check","Service Starting");
}
else
{ Log.i("Service-Check","Service Existing");
}
}
Run Code Online (Sandbox Code Playgroud)