2011-01-25 3 views
2

Я пытаюсь запустить веб-сервер GroomDroid на Android, но когда он начнется, появится черное окно.Запуск приложения в фоновом режиме

enter image description here

Я хотел бы начать это приложение в фоновом режиме без этого экрана показано на рисунке.

Я начинаю это приложение следующим образом:

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

Я также попытался с startService(webServer);, но это не похоже на работу.

Может ли кто-нибудь помочь мне с этим?

+0

'Activity' представляет собой пользовательский интерфейс и не может быть запущен в фоновом режиме. Если вам нужно выполнить фоновую обработку, вам нужно написать «Сервис». –

ответ

0

Линс,

Похожи эмулятором. Если вы используете eclipse, перейдите в «Run Configurations ...» и измените «Launch Actions» на «Do Nothing»

Вы хотите, чтобы приложение всегда было безголовым?

Frank

+0

Привет, Франк, я не использую eclipse, просто текстовый редактор. Знаете ли вы, что изменилось бы в коде, сделав изменения, которые вы мне рассказали? Да, я хочу запустить сервер из своего приложения в фоновом режиме, и я отправлю его пользователю на определенный URL-адрес. – lince

+0

Вы пробовали комментировать <намерение-фильтр> для главного экрана в манифесте xml? –

+0

Если я прокомментирую это, я получаю приложение с ошибкой, которое не установлено (сейчас пытается запустить эмулятор/sdk). BTW забыл упомянуть, что я пользуюсь телефонной связью. Во всяком случае, я собираюсь использовать другой подход. Спасибо за помощь Фрэнк :) – lince

1

Вы должны переместить фон логики к службе, и когда он работает создать текущее уведомление.

Выбор этого уведомления должен начинать вашу деятельность (ui), и служба может передавать свои данные с помощью Handler.

Кроме того, если указать 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> 

и проверки запуска приложения, если ваша служба уже запущена (скажем, вы уже запустили приложение, и теперь нажмите на его значок снова), вы сможете начать ту же задачу, вместо того, чтобы возобновлять свою службу и/или показывать ничего.

Это объяснение может быть не слишком ясно, дайте мне знать, если вам нужно больше информации :)

Смежные вопросы