我有一个计时器,完成后会创建一个通知。点击通知应该会跳转到名为TimerActivity的活动页面。我是这样创建通知的:
mBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(completeNotificationIcon)
.setContentTitle(completeNotificationTitle)
.setContentText(completeNotificationText)
.setTicker(completeNotificationTicker)
.setAutoCancel(true);
Intent notificationIntent = new Intent(this, TimerActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
mBuilder.setContentIntent(contentIntent);
mNotificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
问题是活动无法打开,通知只会自动取消。
进一步调查发现,只有TimerActivity不会像这样打开。如果我将意图更改为打开SttingsActivity.class,它就可以按预期工作了。清单中的TimerActivity:
<activity
android:name=".TimerActivity"
android:parentActivityName=".MainActivity"
android:label="@string/action_timer"
android:theme="@style/AppTheme">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>
但它像其他通过点击通知打开/运行的活动一样被定义。