实现启动一个activity但不显示其界面

实现启动一个activity但不显示其界面  

2011-11-28 17:03:37|  分类: 工作 |  标签:android  |字号 订阅

今天继续学习gis服务在android系统上的实现,因为我用的是Mapabc的api,想利用API实现当前位置定位功能,查看了一下API的文档,正好有一个demo,就拽过来用了。
这个demo是个activity,但我现在已经有一个activity了,我就想把这个activity去掉。只实现定位功能就好了,我尝试去掉以后运行时却报错了。怎么试都不行。我估计这个类的内部实现是要依据activity的,也懒得去看了。看来只能把activity加上了。加上以后果然能运行了。但我的程序需要他不显示这个界面,怎么办呢。
这时候我想起来一开始学习android时候接触到的activity的生命周期,于是想到能不能用生命周期来解决这个问题呢。
首先我在onCreate()方法中不添加setContextView方法,并在定位任务结束以后,调用onDestory方法来结束。结果运行后发现这个activity依旧会显示,显示的是一个黑屏,并且很快就跳出来了。看来这样不能实现。
之后我想起了每个activity都有一个主题的设定。于是我在网上找了一下,如何设定成不显示主题,没有想到Google考虑的比我全面多了,果然有那种主题:
 
    

android:name="com.learns.LocationManager" android:theme="@android:style/Theme.NoDisplay" >

这次再运行。OK,要调用的activity界面不再显示了。最后再利用当前的activity中的onresume方法把需要更新的数据刷新到当前的界面中就可以啦
个demo是个activity,但我现在已经有一个activity了,我就想把这个activity去掉。只实现定位功能就好了,我尝试去掉以后运行时却报错了。怎么试都不行。我估计这个类的内部实现是要依据activity的,也懒得去看了。看来只能把activity加上了。加上以后果然能运行了。但我的程序需要他不显示这个界面,怎么办呢。
这时候我想起来一开始学习android时候接触到的activity的生命周期,于是想到能不能用生命周期来解决这个问题呢。
首先我在onCreate()方法中不添加setContextView方法,并在定位任务结束以后,调用onDestory方法来结束。结果运行后发现这个activity依旧会显示,显示的是一个黑屏,并且很快就跳出来了。看来这样不能实现。
之后我想起了每个activity都有一个主题的设定。于是我在网上找了一下,如何设定成不显示主题,没有想到Google考虑的比我全面多了,果然有那种主题:
 
    

android:name="com.learns.LocationManager" android:theme="@android:style/Theme.NoDisplay" >

这次再运行。OK,要调用的activity界面不再显示了。最后再利用当前的activity中的onresume方法把需要更新的数据刷新到当前的界面中就可以啦

你可能感兴趣的:(实现启动一个activity但不显示其界面)