猿问

第一次安装.apk时如何启动服务

第一次安装.apk时如何启动服务

在我的应用程序中,我没有任何UI部件,所以我需要在应用程序安装到设备上后立即启动服务。我看到了许多联系,答案是这是不可能的,但我想这肯定是可能的。只是看看刨床在Android市场上的应用确实满足了我的要求。下面是我如何尝试的最说明文件,但根本没有调用该服务。因此,当应用程序安装时,让我知道启动服务的最佳方法是什么。

更新

我还试着用android.intent.action.PACKAGE_ADDED它可以很好地检测其他应用程序的包,但对其本身不起作用。

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.auto.start"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="8" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

    <application
        android:icon="@drawable/ic_launcher" >

        <service android:name=".MyService">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </service>

        <receiver android:name=".BootUpReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <action android:name="android.intent.action.PACKAGE_INSTALL" />
                <action android:name="android.intent.action.PACKAGE_ADDED" />
                <data android:scheme="package"/>
            </intent-filter>
        </receiver>
    </application></manifest>


湖上湖
浏览 593回答 3
3回答

萧十郎

安装在/system分区上的应用程序在安装后不会处于“停止”状态。如果你有根,你可以做,$&nbsp;adb&nbsp;root $&nbsp;adb&nbsp;remount $&nbsp;adb&nbsp;push&nbsp;your.apk&nbsp;/system/app它可以立即接收广播意图。这当然不能提供一个通用的解决方案,但我想为了完整性而提及它。编辑:请记住,不同版本的Android将系统APK定位在不同的地方。例如,Android 8将它们放在/system/app/.apk下面。外壳进入您的设备和戳周围和遵循相同的方案使用的其他系统APK。

小唯快跑啊

我同意CommonsWare对以下问题的回答:如何在安装时启动android服务..换句话说,您不能在刚刚安装完之后自动启动服务。关于较新的Android平台,还有一点:如果您根本没有UI,那么即使在使用BOOT_COMPLETE意图是Android 3.1+。这是因为所有安装的应用程序都处于停止状态。在此状态下,应用程序将不会接收任何广播通知。为了激活您的应用程序,其他应用程序(或用户)需要启动您的服务或活动,或内容提供者。通常的工作流程是当用户单击应用程序的图标时。我在我的博客帖子.
随时随地看视频慕课网APP

相关分类

Android
我要回答