如何在通知启动目标活动后打开主要活动?

时间:2017-11-01 16:55:14

标签: android notifications

我有两项活动。MessageActivityMainActivity。当用户点击通知时,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);

}

2 个答案:

答案 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();