2012-03-12 92 views
0

我有一个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> 

那些需要改变?

回答

1

你可以开始从你的活动,做实际工作服务,然后调用finish()。这将关闭活动,并且不会显示GUI。确保该服务在新线程中执行您的任务,否则它将阻止UI线程。另外请记住,服务可以重新启动,所以准备好处理这个问题。

+0

我可以只从活动中完成工作并打完电话吗? – 2012-03-12 03:36:18

+0

你可以,但它既不容易,也不可靠。你需要启动一个新线程来完成这项工作,但是一旦你调用了finish(),活动(进程)就会在后台进行,并且一旦用户启动其他东西就会被终止。该服务旨在在后台工作,因此它有更大的机会完成工作。 – 2012-03-12 04:10:22

+0

有道理,谢谢。 – 2012-03-12 04:13:47

1

您可以使活动透明。

<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