2015-08-18 5 views
2

Я хочу запустить приложение после завершения загрузки в фоновом режиме. Я не хочу показывать пользовательский интерфейс.Запуск активности андроида при загрузке в фоновом режиме

Это мой код, он запускает приложение, как если бы я щелкнул его значок, но мне нужно скрыть его!

[BroadcastReceiver] 
[IntentFilter(new[] { Android.Content.Intent.ActionBootCompleted }, 
    Categories = new[] { Android.Content.Intent.CategoryDefault } 
)] 
public class ReceiveBoot: BroadcastReceiver 
{ 
    public override void OnReceive(Context context, Intent intent) 
    { 

     if ((intent.Action != null) && 
      (intent.Action == 
       Android.Content.Intent.ActionBootCompleted)) 
     { 

      Android.Content.Intent start = new Android.Content.Intent(context, typeof(Main_Activity)); 
      start.AddFlags(ActivityFlags.NewTask); 
      start.AddFlags(ActivityFlags.FromBackground); 
      context.ApplicationContext.StartActivity(start); 

     } 
    } 
} 
+4

* Я не хочу, чтобы показать интерфейс *. Тогда вам не нужна операция. Вероятно, услуга. – Raghunandan

+1

короче не представляется возможным, если у вас есть atleast 1 активность, начиная с момента перезагрузки будет отображаться пользовательский интерфейс. Если он не содержит и пользовательский интерфейс, он может быть запущен как служба. Для [Как запустить приложение после перезагрузки] (http://stackoverflow.com/a/2974763/1061944) –

ответ

3

Если вам нужен Activity, без пользовательского интерфейса, вы, вероятно, хотите услугу.

Переместите логику, которую необходимо выполнить при загрузке с Activity, до Service (подробная информация об этом here).

Тогда для того, чтобы запустить его, просто изменить свое намерение использовать typeof(MyServiceClass), установленный в зависимости от того флаг вам может понадобиться и вызвать StartService вместо StartActivity

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