android sdk创建非GUI应用程序
问题描述:
我有一个android应用程序,我正在开发,应用程序真的只是几个任务,然后退出时,它完成。现在我有一个显示按钮的活动,当我按下它时,它会运行任务。android sdk创建非GUI应用程序
基本上我只是想启动它的应用程序只运行该任务并关闭应用程序。为了创建一个不创建GUI的活动,是否需要这样做呢?现在我的manfiest xml文件也列出
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
那些需要改变?
答
你可以开始从你的活动,做实际工作服务,然后调用finish()
。这将关闭活动,并且不会显示GUI。确保该服务在新线程中执行您的任务,否则它将阻止UI线程。另外请记住,服务可以重新启动,所以准备好处理这个问题。
答
您可以使活动透明。
<activity android:name:"MyActivity" android:theme="@style/Theme.Transparent">
</activity>
其他地方的风格:
<style name="Theme.Transparent" parent="android:Theme">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@color/semitransparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:backgroundDimEnabled">false</item>
</style>
<color name="semitransparent">#80000000</color>
+0
它实际上并不需要保持在后台运行,那么是否需要这样做?这更多的是一场难以忘怀的盛会。 – 2012-03-12 03:28:08
我可以只从活动中完成工作并打完电话吗? – 2012-03-12 03:36:18
你可以,但它既不容易,也不可靠。你需要启动一个新线程来完成这项工作,但是一旦你调用了finish(),活动(进程)就会在后台进行,并且一旦用户启动其他东西就会被终止。该服务旨在在后台工作,因此它有更大的机会完成工作。 – 2012-03-12 04:10:22
有道理,谢谢。 – 2012-03-12 04:13:47