2016-10-20 52 views
0

我在制作系统应用程序。在这个我有一个要求是运行一个服务后开机加载没有一次性清理APP。 这个问题有点类似于这个 System App auto starting 但它没有任何合适的解决方案。 还读取BOOT_COMPLETE_RECEIVER只适用于应用程序一次启动。启动设备后甚至应用程序未打开时自动启动服务。 Android

+1

这可能会帮助你http://stackoverflow.com/questions/5051687/broadcastreceiver-not-receiving-boot-completed –

+0

是啊,我读到的地方,一些供应商只允许应用程序如果用户启动一次就自动启动。你尝试过哪种设备?我知道,例如在某些华为公司,你必须在设备设置中启用AutoRun,否则广播将无法工作。你不能以编程方式做,你必须指导用户.... – Opiatefuchs

+0

看看这个[回答](http://stackoverflow.com/a/6392009/6503228) – kcg

回答

0

感谢所有为你的努力,我终于得到了答案。 解决方案: 正如我所说我的应用程序是系统应用程序,系统工作,即使他们不是一次打开。因为它们并未处于停止状态,即在android 3.1之后执行。

其次如果用户应用程序需要这个,那么它的清单在活动中没有任何“android.intent.category.LAUNCHER”类别。

也由亚行,你可以使用此命令 亚行外壳AM广播使您的应用程序-a com.example.demo.action.LAUNCH --include-停包(这是未测试)

一些好的连结此: http://droidyue.com/blog/2014/01/04/package-stop-state-since-android-3-dot-1/ Static BroadcastReceiver not Working after Installation from ADB

0

使用Broadcast Receiver在该广播接收器的启动服务之后获取操作,并使用START_STICKY服务,以便如果由于某种优先级而不是被重新创建而终止,并且您希望在后台连续运行该服务而不是WAKE_Lock服务和使用报警管理器检查它是否运行。

+0

这只有在您打开应用程序至少一次后才有效。我想要收到启动完成接收器的作品,即使用户安装它后没有单次打开应用程序。 –

+0

广播接收器和服务的任何实例都不是在未打开应用程序的情况下创建的。 –

0

设置此清单中

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

<receiver 
android:name="AutoStart" 
android:enabled="true" 
android:exported="false"> 
    <intent-filter> 
     <action android:name="android.intent.action.BOOT_COMPLETED" /> 
    </intent-filter> 
</receiver> 

自动启动类

public class AutoStart extends BroadcastReceiver { 

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

    if (intent.getAction().equalsIgnoreCase(Intent.ACTION_BOOT_COMPLETED)) { 
     // Start your service here.. 
    } 
    } 
} 
+0

这只有在您打开至少一次应用时才有效。我想要收到启动完成接收器的作品,即使用户安装它后没有单次打开应用程序。 –

+0

@ VindhyaPratapSingh检查这[博客](https://commonsware.com/blog/2011/07/13/boot-completed-regression-confirmed.html)。 –

相关问题