应用程序调用屏幕锁定

时间:2012-03-11 08:00:03

标签: android

我希望在屏幕解锁后以及启动时立即启动应用程序。这怎么可能?我需要做出哪些改变?

1 个答案:

答案 0 :(得分:2)

  1. 要在屏幕锁定时启动应用程序,您需要为Intent.ACTION_SCREEN_OFF意图注册BroadcastReceiver以获取更多信息,请查看示例http://thinkandroid.wordpress.com/2010/01/24/handling-screen-off-and-screen-on-intents/

  2. 要在启动时启动您的应用程序,您需要一个收听BOOT_COMPLETED操作的广播接收器,请参阅How to start an Application on startup?

  3. 首先,您需要清单中的权限:

    <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);
            }
        }
    }
    

    现在,您的服务应该在手机启动时运行。