processus kill Android du récepteur de radiodiffusion
-
28-10-2019 - |
Question
Salut je cherche à tuer une activité dans mon application lorsque l'USB est déconnecté j'ai un récepteur de radiodiffusion et tous mis en place et fin de travail
public class USBOff extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent intent1 = new Intent(context, SdcardOff.class);
startActivity(intent1);
finish();
}
}
Ce code me dit cependant que la méthode de finition et les méthodes startActivity doivent être créés? Pourquoi est-ce ne fonctionne pas merci pour toute aide avec mon problème
La solution
startActivity
est une méthode de contexte, et non pas un procédé de BroadcastReceiver. finish
est une méthode d'activité. Essayez ceci:
context.startActivity(intent1);
Vous ne pouvez pas appeler finish
d'un BroadcastReceiver.
Autres conseils
J'ai trouvé une méthode interexting: Manfest:
android:launchMode="singleInstance"
<action android:name="com.gr.app.KILLSELF" />
code récepteur:
Intent intentInterface = new Intent("com.gr.app.KILLSELF");
mContext.startActivity(intentInterface);
activité partie onCreate:
if (intent.getAction().compareTo("com.gr.app.KILLSELF") == 0) {
finish();
};
Il ne fonctionnera pas dans une telle configuration, si vous pouvez avoir beaucoup InstancesOf activité (string android: launchMode = "SingleInstance" est un problème pour vous),
J'espère que cela aidera
Logique simple:
Si vous ne voulez pas tuer l'activité alors ne pas utiliser la finition () Et si vous voulez tuer l'activité alors vous devriez avoir à appeler finish ();
Alors enlever la finition (); à partir du code et l'essayer. Profitez.