我有两项活动。MessageActivity
和MainActivity
。当用户点击通知时,MessageActivity
将会启动。
如果应用已关闭,我想在完成MainActivity
后启动MessageActivity
每当应用程序运行时,只需完成MessageActivity
。
这是我的代码, 我使用oneSignal通知,不要自己创建通知。
@Override
public void notificationOpened(OSNotificationOpenResult result) {
OSNotificationAction.ActionType actionType = result.action.type;
JSONObject data = result.notification.payload.additionalData;
Intent intent = new Intent(MyApplication.getContext(),
MessageActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
MyApplication.getContext().startActivity(intent);
}
答案 0 :(得分:1)
点击通知并启动MesageActivity后,您也可以像这样在putExtra中发送一个标志
intent.putExtra("OpenActivityFromNotification", true);
在OnCreate之后的MesageActivity中,您可以获得值:
boolean isActivityOpenedFromNotification = intent.getBooleanExtra("OpenActivityFromNotification", false);
然后,在你的MesageActivity中你可以用这样的东西来修改OnBackPressed:
@Override
public void onBackPressed() {
if(isActivityOpenedFromNotification){
Intent intent = new Intent(getActivity(),
MainActivity.class);
startActivity(intent);
}
else
super.onBackPressed();
}
很好的编码!
答案 1 :(得分:0)
只要您想关闭它并回到调用者活动(在您的情况下为MainActivity),请在MessageActivity中调用finish();
。