2010-02-19 9 views
1

J'ai ce récepteur de diffusion enregistréAndroid: Pourquoi le BroadcastReceiver plante?

public class NotifyAlarmBroadcast extends BroadcastReceiver{ 
    public Context context; 
    public static final String NOTI = "android.intent.action.MAIN"; 
// actually i want NOTI = "com.sumit.timekeeper.NotifyAlarm" 
// this too is not working 
// help me here please 

@Override 
public void onReceive(Context _context, Intent intent) { 
    context = _context; 
    Uri data = intent.getData(); 
    String reason = intent.getStringExtra("alarm_reason"); 
    Intent intentalarm = new Intent(NOTI, data); 

    intentalarm.putExtra("reason", reason); 
    context.startActivity(intentalarm); 
} 

}

et le

manifeste
<application android:icon="@drawable/icon" android:label="@string/app_name"> 
    <activity android:name=".TimeKeeperStartActivity" 
     android:screenOrientation="portrait" android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity android:name=".NotifyAlarm" 
     android:screenOrientation="portrait" android:theme="@android:style/Theme.Dialog"> 
     <intent-filter> 
      <action android:name="com.sumit.timekeeper.NotifyAlarm"> 
      </action> 
     </intent-filter> 
    </activity> 

    <receiver android:name=".NotifyAlarmBroadcast"> 
     <intent-filter> 
      <action android:name="com.sumit.timekeeper.NotifyAlarmBroadcast" /> 
     </intent-filter> 
    </receiver> 
</application> 

mais lorsque la ligne atteint context.startActivity (intentalarm); l'application se bloque

peut-être c'est où nous passons premier paramètre à Intention, je ne suis pas clair sur s'il vous plaît aidez-moi.

+0

Vous pouvez avoir plus d'informations sur le crash de LogCat (DDMS -> onglet LogCat) – ccheneson

+0

Salut de ccheneson, Merci pour la réponse. LogCat affiche crash à context.startActivity (intentalarm); . Aussi j'ai essayé AlerDialog cela aussi quand les hits alertDialogObj.show() se bloque ... Normal Intent avec NotifyAlarm.class param aussi se bloque quand hits context.startActivity (intentObj); ? Je suis à un stade assez naïf que je ne peux même pas comprendre ce qui se passe au niveau de l'OS. –

+0

La seule chose qui fonctionne bien là est Toast, il ne plante pas quand il atteint toastObj.show() –

Répondre

2

Essayez d'ajouter le drapeau FLAG_ACTIVITY_NEW_TASK dans votre intention.

intentalarm.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
+0

Cela aussi n'a pas fonctionné pour moi. Je pense que je ne comprends pas le vrai comportement de BroadCasting. J'essaie de l'apprendre après avoir trouvé de bons tutoriels. Si vous connaissez de bons blogs expliquant BroadCasting dans Android, s'il vous plaît donnez-moi un lien vers celui-ci. Merci encore. –

Questions connexes