在后台运行应用程序

问题描述:

我试图在Android中启动GroomDroid Web服务器,但启动时会显示一个黑色窗口。在后台运行应用程序

enter image description here

我想启动这个程序中没有该屏幕背景被显示。

我开始这个程序,以下列方式:

Intent webServer = new Intent(); 
webServer.setClassName("net.allory.groom","net.allory.groom.GroomDroid"); 
startActivity(webServer); 

我也试图与startService(webServer);,但它似乎并没有工作。

任何人都可以帮助我吗?

+0

的`Activity`表示用户界面,并且不能在后台启动。如果你需要做后台处理,那么你必须写一个`Service`。 – 2011-01-26 09:06:31

Lince,

看起来像模拟器。如果您使用的是eclipse,请转到'运行配置...'并将“启动操作”更改为“无所作为”

您是否希望应用程序永远无人?

弗兰克

+0

嗨,弗兰克,我没有使用eclipse,只是一个文本编辑器。你知道代码中会改变你告诉我的改变吗?是的,我想在后台运行我的应用程序中的服务器,并且他们会将用户发送到特定的网址。 – lince 2011-01-25 10:16:36

你应该将你的背景逻辑服务,当它的运行创造一个持续的通知。

选择该通知应该启动您的活动(ui),并且服务可以使用Handler将其数据传递给它。

此外,如果您指定活动launchModesingleTask

<activity android:name=".activity.YourActivity" 
    android:launchMode="singleTask" 
    android:alwaysRetainTaskState="true" 
    android:clearTaskOnLaunch="false" 
    android:finishOnTaskLaunch="false"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter> 
</activity> 

,并在应用程序启动检查,如果您的服务已在运行(说你已经开始应用,现在按它的图标再次),您将能够开始完成相同的任务,而不是重新启动服务和/或不显示任何内容。

这种解释可能不太清楚,让我知道,如果你需要更多的细节:)