次のようなレシーバーから startActivity を使用している場合:
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);
}
一部のデバイス (Galaxy S2 android: 4.0.4 など) では、メイン アクティビティ (action.MAIN および category.LAUNCHER を使用) の背景でも開始されます。
--編集--
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>
何故ですか?