Le récepteur de diffusion Android ne reçoit pas l'intention
J'ai deux applications que j'ai fait, et je suis en train d'envoyer un de l'intention de l'un à l'autre, mais l'intention est de ne jamais arriver à la onReceive()
mais ce problème n'est qu'un moyen. La première application peut envoyer à la seconde, mais la deuxième ne peut pas envoyer de retour d'info. Je suis l'aide d'une intention différente d'action pour envoyer à partir de la seconde à la première, mais autrement elles sont identiques. Toutes les idées sur pourquoi cela ne fonctionne pas? J'ai essayé tout ce que je pense de et lu la plupart des posts que j'ai pu trouver ici et en vain.
C'est de ne pas tomber ou de me donner des indications sur ce qui se passe dans le logcat c'est juste ne rien faire.
fonction d'envoi de
private void sendFinishLog(String ID, String Cond)
{
Log.d("me", "send finish log");
Intent logIntent = new Intent();
logIntent.putExtra("ID", ID);
logIntent.putExtra("Cond", Cond);
logIntent.setAction("com.me.intent.finishlog");
Log.d("me","logIntent : " + logIntent.toString()
+logIntent.getExtras().toString());
sendBroadcast(logIntent);
}
recevoir de classe
public class LogReceiver extends BroadcastReceiver {
public static ArrayList<LogDataHolder> logData = new ArrayList<LogDataHolder>();
private boolean found;
static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
private static String lasttime;
private static String now = "Boot time";
@Override
public void onReceive(Context cont, Intent logIntent)
{
Log.d("me","On receive");
etc.....
}
Réception du manifeste de l'application
<!-- for receiving logs -->
<receiver
android:name = "LogReceiver"
android:enabled="true">
<intent_filter>
<action android:name="com.me.intent.finishlog" />
</intent_filter>
</receiver>
source d'informationauteur Cob50nm
Vous devez vous connecter pour publier un commentaire.
quelque chose comme:
et pour vous désinscrire:
edit:
je viens de comprendre que votre LogReceiver-classe ne possède pas de constructeur ni. vous aurez besoin d'écrire un aswell:
et après cela, vous pouvez utiliser le onReceive-méthode comme vous l'avez déjà dans votre code.
Essayer de nouveau comme ça. La catégorie faudra peut-être ajouter
Mon problème a été résolu quand j'ai enlevé le récepteur se désinscrire de la OnPause(). méthode.
Vous avez déclaré le récepteur dans le manifeste:
La la documentation membres de ce nom doit être:
En d'autres termes, il doit inclure le package. Essayez de changer le nom de:
ou