6
votes

Android forçant le redémarrage complet après une application est tuée

bonjour Mon application fonctionne comme ceci.

La startupactivité est appelée en premier, ce qui fait beaucoup de choses init Ensuite, il lance la TVBACTABACTIVITY (tabactivité) qui a d'autres activités que ses onglets (par exemple, une browseactivité). P>

Le problème que je vois est celui-ci - lorsqu'une application Task-Killer est utilisée pour mettre fin à mon application sur la touche TVBBACTUCTITY / Parcourez l'onglet et l'application est relancée à nouveau, le système renonce au flux normal (la startupactivité n'est pas engendré), mais rétablit plutôt la dernière activité visible directement (TVBBACTIVITY). P>

Comment forcer l'Android à fonctionner toujours La starupactivité d'abord, de sorte qu'elle initialise l'application? P>

Évidemment, je n'ai pas ce problème lorsque mon application se bloque seul, lol, en raison d'une exception et est ensuite relancée à nouveau. P>

<application android:icon="@drawable/appicon"
  android:label="@string/app_name" android:name="com.xyz.QPApplication"
  android:debuggable="true">

  <activity android:name=".activity.StartUpActivity" android:configChanges="locale|orientation"
   android:label="@string/app_name" 
   android:screenOrientation="portrait">
   <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
    <category android:name="android.intent.category.DEFAULT" />
   </intent-filter>
  </activity>


  <activity android:name=".catalogue.BrowseActivity" android:configChanges="locale|orientation"
   android:label="@string/app_name" android:screenOrientation="portrait"
    android:launchMode="singleTop">
   <intent-filter>
    <action android:name="com.xyz.android.intent.action.BROWSE" />
    <category android:name="android.intent.category.DEFAULT" />
   </intent-filter>

  </activity>

  <activity android:name=".activity.TvbTabActivity" android:configChanges="locale|orientation"
   android:screenOrientation="portrait" android:launchMode="singleTask">
  </activity>


0 commentaires

3 Réponses :


0
votes

vous ne pouvez pas. Android essaiera de restaurer l'application où elle était arrêtée. La bonne façon de gérer cela est de vous assurer que vous comprenez le activité cycle de vie et mettre l'initialisation appropriée à l'endroit approprié.


0 commentaires

0
votes

Il y a quelques façons de résoudre votre problème, le meilleur serait de vérifier le diagramme de cycle de vie Android http://code.google.com/androïd/images/activit_lifecycle.png et essayez de déterminer un moyen de faire fonctionner l'application dans ce contexte.

Bien sûr, si vous voulez vraiment vous pouvez tuer votre propre application en appelant activité.Finish () quand il frappe les états onpa () ou Onstop (), mais c'est une solution assez laide.


0 commentaires

0
votes

Vous ne pouvez rien faire à ce sujet - qu'est-ce qui vous arrive est ce que la force arrête l'API et est destinée à faire.

Les tueurs de tâches abusent de cette API.

Ils ne peuvent plus l'utiliser en 2.2 et plus tard.

Si vous vraiment veux l'éviter, vous pouvez limiter votre application à seulement 2.2 ou plus tard. Ou si le problème est que les utilisateurs se plaignent d'eux, dites-leur de cesser d'utiliser des tueurs de tâches. Ou si le problème est juste que vous n'aimez pas que cela se produise lorsque vous utilisez un tueur de tâche, n'utilisez pas un tueur de tâche.

Il s'agit également du même comportement qui se produit lorsque l'utilisateur appuie "Force Stop" dans l'interface utilisateur de la gestion de l'application. C'est généralement bien que l'utilisateur doit explicitement le faire explicitement, au lieu de ce que ces applications de tueur de tâches font de plus en plus d'où ils gassent simplement des choses en arrière-plan sans que l'utilisateur soit directement impliqué.


0 commentaires