TaskStackBuilderを使用しても問題は解決せず、Honeycomb以降でのみ機能します。だから私は次の解決策を取ります(私を十字架につけないでください):
MainActivity
の代わりに呼び出し、引数として(Intentによって)MatchActivity
渡します。MatchActivity
- で、パラメータが使用可能な場合はを
MainActivity.onCreate
開始します。MatchActivity
新しいコード:
Intent resultIntent = new Intent(context, MainActivity.class) //
.putExtra(MainActivity.ACTIVITY_EXTRA, MatchActivity.class.getName()) //
.putExtra("Pass extras to MatchActivity", "if you want! :)");
PendingIntent pendingIntent = PendingIntent.getActivity(context, visitId, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT);
Notification notification = new NotificationCompat.Builder(context) //
.setContentIntent(pendingIntent) //
.build();
オンMainActivity
:
public static final String ACTIVITY_EXTRA = "activity";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getIntent().getStringExtra(ACTIVITY_EXTRA) != null) {
startActivity(new Intent(getIntent()).setClassName(this, getIntent().getStringExtra(ACTIVITY_EXTRA)));
}
...
}