Se è vero che un Intent implicito può chiamare sia un'Activity che un BroadcastReceiver, voglio vedere cosa succede se creo un'Activity e un BroadcastReceiver con la stessa action.
<activity android:name=".MainActivity" 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=".Seconda" android:label="@string/title_activity_seconda" > <intent-filter> <action android:name="android.intent.action.Seconda" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> <activity android:name=".Altra" android:label="@string/title_activity_altra" > <intent-filter> <action android:name="android.intent.action.Seconda" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> <receiver android:name="receiver"> <intent-filter> <action android:name="android.intent.action.Seconda" /> </intent-filter> </receiver>Proviamo ora con sendBroadcast:
Questo è il codice della classe che estende BroadcastReceiver:
public class receiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { Log.d("BROADCAST","RICEVUTO"); } }che dovrebbe stamparmi "BROADCAST" "RICEVUTO" in LogCat.
E adesso uso l'Intent:
Intent intent=new Intent(); intent.setAction("android.intent.action.Seconda"); sendBroadcast(intent);Vediamo...
04-06 23:09:59.693: D/BROADCAST(3727): RICEVUTOPerfetto!
Invece, con Activity:
Intent intent=new Intent(); intent.setAction("android.intent.action.Seconda"); startActivity(intent);Proviamo...
Ecco:
Nessun commento:
Posta un commento