在后台运行应用程序

时间:2011-01-25 08:47:49

标签: java android

我正在尝试在Android中启动GroomDroid Web服务器,但是当它启动时,会显示一个黑色窗口。

enter image description here

我想在后台启动此应用,但不会显示该屏幕。

我以下列方式启动此应用程序:

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

我也尝试使用startService(webServer);,但它似乎无效。

有人可以帮我吗?

2 个答案:

答案 0 :(得分:1)

您应该将后台逻辑移动到服务,并在运行时创建持续通知。

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

另外,如果您将活动的launchMode指定为singleTask

<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>

并在应用程序启动时检查您的服务是否已经运行(假设您已启动应用程序,现在再次按下其图标),您将能够启动相同的任务,而不是重新启动您的服务和/或什么都不显示。

这个解释可能不太清楚,如果您需要更多详细信息,请告诉我们。)

答案 1 :(得分:0)

林塞,

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

你想让应用永远无头吗?

弗兰克