Quand j'utilise startActivity d'un récepteur comme celui-ci:Android: startActivity d'un récepteur commence également l'activité principale (action.MAIN/category.LAUNCHER)
public void onReceive(final Context context, final Intent intent) {
Intent i = new Intent();
i.setClass(context, NewClass.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
i.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
context.startActivity(i);
}
dans certains appareils (Galaxy S2 Android: 4.0.4 par exemple) - il commence aussi dans les backgrouns l'activité MAIN (avec action.MAIN et category.LAUNCHER).
-Modifier -
AndroidManifest:
<application android:label="@string/app_name" android:icon="@drawable/ic_launcher" android:debuggable="true">
<receiver android:name="com.my.app.MyBroadcastReceiver" android:enabled="true">
<intent-filter android:priority="99999">
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
<activity android:name="com.my.app.Main">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.my.app.NewClass">
<intent-filter>
<action android:name="android.intent.action.NEWSCLASS" />
</intent-filter>
</activity>
</application>
Pourquoi?
Lorsque j'ouvre mon application, je veux utiliser Main.class, mais dans mon Reciver onReceive - je veux commencer NewClass.class – Erez
Je comprends cela, mais Android fonctionne comme ceci: quand vous démarrer une autre activité L'activité déjà démarrée passe en arrière-plan – AlexGo
Vous pouvez supprimer de AndroidManifest.xml les lignes que j'ai décrites dans ma réponse. – AlexGo