2012-03-12 111 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