java - 在 Android 中单击通知后,如何重新启动而不是重新创建 Activity?

标签 java android android-studio

我有一些代码可以发送下载完成的通知,当单击此通知时,我希望它重新启动我的 Activity 。

目前,通知是在 BroadcastReceiver 中创建的。这是我将 Intent 添加到通知的部分。

NotificationManager nm = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
Intent resultIntent = new Intent(context, CurrentActivity.class);
resultIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK  );
PendingIntent resultPendingIntent = PendingIntent.getActivity(
    context,
    0,
    resultIntent,
    PendingIntent.FLAG_UPDATE_CURRENT);
Notification.Builder builder = new Notification.Builder(getApplicationContext());
builder.setContentIntent(resultPendingIntent);

现在,它的作用是通过调用 onDestroy() 方法销毁我的 CurrentActivity,然后调用 onCreate() 创建一个新的实例。这对我来说是一个问题,因为我的 onDestroy() 将 BoundService 与我的 Activity 解除绑定(bind)。我宁愿让我的 Activity 重新启动(onStop() 然后 onRestart() 然后 onStart()),所以我的 onCreate( )onDestroy() 方法可以处理绑定(bind)和取消绑定(bind),我的 onStart() 方法处理 UI 的更改。

有办法做到这一点吗?

最佳答案

我认为您可能会考虑以不同的方式设置 Intent 标志以实现您想要的行为。

resultIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);

如果需要,请在 onResume Activity 中处理 UI 更改。希望有帮助。

关于java - 在 Android 中单击通知后,如何重新启动而不是重新创建 Activity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53982541/

相关文章:

Java初学者: Why Does char Use ' ' Instead of ""?

java - 在 Solace 上读取 JMS 队列时出错

javascript - 使用 PhoneGap 下载文件并在 AngularJS 中使用

android - 如何检测手机倾斜?

java - Facebook API 如何等待 graphRequestexecuteAsync 完成

android - 如何将 Viewholder 与 ExpandableListView 一起使用?

java - 如何验证用户是否有 Google Play 中的最新更新

Android Studio "Resource"窗口

java - 帧率/性能随时间下降

java - 运行一分钟循环 - Android