如何实现一个只有广播和service的android应用没有activity
[问题点数:60分,结帖人u012302460]
|
楼主
发表于: 2014-03-25 16:06:25
我只想通过广播启动服务,服务去为我做点事情, 根本不需要activity的参与.-----------------------
1.然而代码搞定之后在AndroidMainifest里面配置好一个默认启动的activity 后部署到真机 ....一切正常... 2.但是如果 把配置文件里的activity注释了,再部署真机就不行... 服务一直启动不了 各种权限各种广播监听(主要是监听 开机和 手机状态改变的广播 ) 都没效果.... 执行完第一步之后再进行第二步 又正常了...唯独在一个干净(没有这个程序)的真机上安装一个没有配置activity的应用 广播监听不了,服务启动不了... 在虚拟机上貌似不存在这个问题.... 网上有人说配置service就可以完成无界面的程序后台运行 但按照他们的配置 我的问题还是解决不了 A.没有activity直接安装---安装成功 --运行失败(得不到想要的效果) B.有activity配置安装----安装成功---运行成功(能够完成想要的功能,只是在luncher里面有图标,) C.有activity配置安装-----安装成功---运行成功-----继续 去activity配置安装==---安装成功 完美达到想要的效果程序在后台正常运行完成相关监听任务 没有图标..... B 和C都可以成功完成 ,但是有没有办法让B达到C的效果啊??????????? 求大神指点
name="google_ads_iframe_/8456/IDG.CN_B2B_csdn.net_0" width="728" height="90" title="3rd party ad content" id="google_ads_iframe_/8456/IDG.CN_B2B_csdn.net_0" src="javascript:""" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border: 0px currentColor; border-image: none; vertical-align: bottom;">
name="google_ads_iframe_/8456/IDG.CN_B2B_csdn.net_0__hidden__" width="0" height="0" title="" id="google_ads_iframe_/8456/IDG.CN_B2B_csdn.net_0__hidden__" src="javascript:""" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border: 0px currentColor; border-image: none; vertical-align: bottom; display: none; visibility: hidden;">
|
|
#1 得分:10
回复于: 2014-03-26 10:32:42
必须得先启动下Activity,然后在Activity中去启动Service和注册广播。
|
|
#2 得分:50
回复于: 2014-03-26 11:58:27
多写一个 activity 怎么了,最多就是检测一下如果不是第一次运行就闪退呗,啥都不耽误。
|
|
#3 得分:0
回复于: 2014-03-26 17:33:56
这个貌似不错.... 不配置activity的 <category android:name="android.intent.category.LAUNCHER" />就可以搞定我想要的 . 好吧,都不需要判断什么了 直接闪退......... 谢谢.... |
|
#4 得分:0
回复于: 2014-07-03 21:21:39
高版本貌似3.0以后,广播必须要启动一次app才可以注册。
楼主的目的是不是想app没有图标,并且可以实现广播监听? 不配置activity的 <category android:name="android.intent.category.LAUNCHER" /> 也是不能实现的,没有LAUNCHER确实没有图标,但是如果安装完apk没有图标就无法启动app,也就无法实现广播的注册,广播也就实现不了监听的任务。 eclipse中debug时默认会运行,所以只要第一次有LAUNCHER,实现了广播的注册,以后没有LAUCHER再debug广播一样可以使用。 除非卸载了该apk,再次debug就不可以了。 |