我是否能够在第一次运行应用程序时使用Android服务

时间:2013-03-09 12:12:00

标签: android eclipse service startup

我希望在我使用我的程序的时候得到事件,所以我决定使用这个服务

public class PackageChangeReceiver extends BroadcastReceiver {

    Context context;

    @Override
    public void onReceive(Context ctx, Intent intent) {
}}

并在主要节日

 <receiver android:name=".PackageChangeReceiver" >
            <intent-filter>
                <action android:name="android.intent.action.PACKAGE_REMOVED" />
                <action android:name="android.intent.action.PACKAGE_REPLACED" />
                <action android:name="android.intent.action.PACKAGE_ADDED" />
                <data android:scheme="package" />
            </intent-filter>
        </receiver>

但是这个服务在我安装我的应用程序的第一时间不起作用,我怎么能让它在第一次运行?或者不可能这样做? 我必须第二次从eclipse更新应用程序才能使这项服务正常工作,问题是什么。

什么时候android系统可以使用它的服务,我有时候我应该运行我的一个活动来使服务可用,这是真的吗?

1 个答案:

答案 0 :(得分:2)

启动Android 3.1,任何希望接收广播的应用必须在Android向其发送任何广播之前至少运行一次其UI组件(即活动)。这样做是出于安全原因,以防止恶意应用程序自动启动。