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

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top