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