Lancement de l'activité de l'arrière-plan de l'app
J'ai mon application qui s'exécute en arrière-plan et je veux de l'application pour être visible sur le haut(lancé), du téléphone android lorsque le code ci-dessous est couru. (Je sais que le code est exécuté pour être sûr)
Cela semble être une chose simple, mais j'ai passé quelques heures sur ce site et tout le monde semble être ce qui suggère quelque chose comme ceci:
Intent intent = new Intent(myActivity.this, myActivity.class);
startActivity(intent);
Cependant, il n'est pas amener l'application de l'avant et de le lancer.
Je l'ai eu à travailler à partir d'un PendingIntent lancé à partir d'une notification. Qui je fait le code ci-dessous. Mais je veux que l'application à lancer par lui-même sans que l'utilisateur en cliquant sur la notification.
Intent intent = new Intent(myActivity.this, myActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, REQUEST_CODE, intent, 0);
notification.setLatestEventInfo(this, "title", "msg", contentIntent);
J'ai aussi essayé:
Intent intent = new Intent("android.intent.action.MAIN");
startActivity(intent);
et de l'essoufflement de l'intention:
intent.setFlags(Intent.FLAG_FROM_BACKGROUND);
intent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Mais ne semble pas faire quoi que ce soit, toute aide appréciée.
- j'ai oublié de mentionner mon manifeste android ressemble à ceci: <l'activité android:label="@string/app_name" android:name=".myActivity" android:thème="@android:style/Thème.Boîte de dialogue" android:launchMode="instance unique" android:excludeFromRecents="true" > <intent-filter > <action android:name="android.l'intention.d'action.PRINCIPAL" /> <category android:name="android.l'intention.de la catégorie.LAUNCHER" /> </intent-filter> </activité>
- Lorsqu'une activité est définie comme LANCEUR dans le manifeste cela signifie, c'est la première activité lancée lorsque vous démarrez l'application. Donc, il n'est pas clair comment avez-vous dans une tâche de fond sans avoir myActivity lancé en premier.
- MyActivity est lancé en premier, puis-je aller à une autre application ou appuyez simplement sur l'écran d'accueil de mon application qui s'exécute en arrière-plan. C'est que ce que vous demandez?
Vous devez vous connecter pour publier un commentaire.
Vous devriez être en mesure d'appeler votre propre application comme ceci:
Edit: Oublié à ajouter à l'intention.setFlags(Intention.FLAG_ACTIVITY_NEW_TASK);
De ce que je comprends, vous voulez un service qui est en cours d'exécution en arrière-plan et sur un certain événement, vous souhaitez que votre application est l'activité à venir en face c'est à dire sur les utilisateurs actuels de l'écran tout ce qu'il est en train de faire. Il n'est pas conseillé de laisser un service d'arrière-plan de lancement d'une application sans une action de l'utilisateur. Le développeur android site dit
Donc, ne pas essayer de le faire à lancer sur son propre.
http://developer.android.com/reference/android/app/Notification.Builder.html#setFullScreenIntent(android.app.PendingIntent, boolean)
Je Un pas derrière mon ordinateur portable atm donc je suis nog sûr, mais je pense que vous avez orteil passer un objet de contexte la main, puis faire le contexte.startactivity(intent);
Désolé de ne pas wel formaté, je suis à mon téléphone atm
Espère que Cela aide
Je suis donc prêt à pailles ici, mais vous avez écrit:
Donc, la situation est que votre Activité d'origine n'est PAS en cours d'exécution en arrière-plan, lorsque vous avez appuyé sur la MAISON, il pourrait bien pourrait avoir été arrêté et détruit. Votre tâche en arrière-plan est resté orphelin et MyActivity.cette est null à ce point.
Essayer et de tester ce qui ne Journal.j'(TAG,MyActivity.c'); d'impression dans le LogCat.
J'ai fini par utiliser une dans l'attente de l'intention et de la place de stright d'essayer d'utiliser une intention.
Quelque chose comme ceci: semble beaucoup plus simple.
Intent.send(this, 0, intent);
Grâce.
send()
en venir?