Android:启动服务时出现问题
在my AndroidManifest.xml文件中:Android:启动服务时出现问题,android,service,boot,Android,Service,Boot,在my AndroidManifest.xml文件中: <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_ST
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<service
android:name="com.compagny.myapp.service.HTTPService"
android:enabled="true" >
<!-- To allow start the Android service (for debugging session) -->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</service>
此应用程序在我的pcDuinoV2板上运行。但我有一种奇怪的行为:
- 当我启动pcDuino板时,没有连接到我的开发笔记本电脑(因此使用外部电源),我的Android服务启动了,但没有任何功能(我的应用程序中有两台服务器)
- 当我用我的笔记本电脑的USB连接启动pcDuino板时,我的Android服务启动了,我的两台服务器运行正常
多谢各位 你有用户界面还是只有后台服务?它只是后台服务。没有用户界面。如果你在安卓3.1+上工作,你需要提供用户界面,或者用flag-flag\u-INCLUDE\u-STOPPED\u包启动你的服务,否则它不会工作。这是谷歌的安全补丁。当你默认安装一个软件包时,它的状态是停止的,直到用户与它交互。我添加了这个标志,但没有改进。。。公共类bootcompletedintentreeceiver扩展了BroadcastReceiver{@Override public void onReceive(上下文上下文,意图Intent){if(“android.Intent.action.BOOT_COMPLETED”.equals(Intent.getAction()){Intent pushIntent=new Intent(上下文,HTTPService.class);pushIntent.addFlags(Intent.FLAG_包括已停止的包);context.startService(pushIntent);}}}}应用程序的包状态已停止。在您更改状态之前,BootCompletedIntentReceiver将不会收到任何意图。要更改状态,您需要至少打开一次UI/使用ADB Shell的--include stopped packages标志启动服务/使用系统证书对APK进行签名并将其放入/system/app文件夹