1

在 AndroidManifest.xml 中,我将 BroadcastReceiver 注册到“android.intent.action.BOOT_COMPLETED”事件。这会在每次 Android 设备启动时启动服务。

...
        <receiver android:name="MySystemScheduleReceiver" >
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
        </receiver>
...

但是,我希望在安装应用程序后立即启动系统服务,而无需重新启动设备。

应用程序启动时我可以使用系统事件吗?还是我需要设置自定义事件?

我应该将清单文件修改为类似

...
        <receiver android:name="MySystemScheduleReceiver" >
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="com.myapp.StartSysService" />
            </intent-filter>
        </receiver>
...

然后从我的主要活动中启动服务,例如

...
        Intent intent = new Intent();
        intent.setAction("com.myapp.StartSysService");
        sendBroadcast(intent);
...

如果是这样,我应该使用哪种方法?(onCreate, onResume...)

谢谢

4

1 回答 1

4

您可以对具有 onCreate() 回调的应用程序进行子类化。您可以在那里开始您的服务。

public class MyApplication extends Application {
    public void onCreate() {
        // start your service
    }
}

<application>清单的标签中,添加android:name="MyApplication"

于 2013-04-10T16:28:06.987 回答