我有一些代码可以发送下载完成的通知,当单击此通知时,我希望它重新启动我的 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/