我希望在屏幕解锁后以及启动时立即启动应用程序。这怎么可能?我需要做出哪些改变?
答案 0 :(得分:2)
要在屏幕锁定时启动应用程序,您需要为Intent.ACTION_SCREEN_OFF意图注册BroadcastReceiver以获取更多信息,请查看示例http://thinkandroid.wordpress.com/2010/01/24/handling-screen-off-and-screen-on-intents/
要在启动时启动您的应用程序,您需要一个收听BOOT_COMPLETED操作的广播接收器,请参阅How to start an Application on startup?
首先,您需要清单中的权限:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
此外,在您的清单中,定义您的服务并监听启动完成的操作:
<service android:name=".MyService" android:label="My Service">
<intent-filter>
<action android:name="com.myapp.MyService" />
</intent-filter>
</service>
<receiver
android:name=".receiver.StartMyServiceAtBootReceiver"
android:enabled="true"
android:exported="true"
android:label="StartMyServiceAtBootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
然后你需要定义接收器,它将获得BOOT_COMPLETED动作并启动你的服务。
public class StartMyServiceAtBootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
Intent serviceIntent = new Intent("com.myapp.MySystemService");
context.startService(serviceIntent);
}
}
}
现在,您的服务应该在手机启动时运行。