屏幕方向更改后恢复通知

Restoring notification after screen orientation change

Intent intent_1 = new Intent(this, MainActivity.class);
            taskStackBuilder = TaskStackBuilder.create(this);
            taskStackBuilder.addParentStack(MainActivity.class);
            taskStackBuilder.addNextIntent(intent_1);
            pendingIntent_1 = taskStackBuilder.getPendingIntent(EBC_ID,PendingIntent.FLAG_UPDATE_CURRENT);
notification = new Notification.Builder(this)
                    .setSmallIcon(R.mipmap.ic_launcher)
                    .setContentTitle(getString(R.string.Text))
                    .setContentText(time)
                    .setAutoCancel(false)
                    .setContentIntent(pendingIntent_1)
                    .build();
            notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
            notificationManager.notify(NOTIFICATION_ID, notification);

我没有找到类似的东西所以我决定问一下。
单击开始按钮后会显示通知,现在如果我按停止按钮禁用它调用: notificationManager.cancel(NOTIFICATION_ID);
没关系。但是当我改变屏幕方向时:notificationManager 和通知为空。所以停止按钮不起作用,一直显示通知。
我如何存储对它们的引用?
我试图通过 Bundle 对象保存它,但它需要简单的对象(字符串,整数),我无法放置通知对象。 还尝试了 sharedpreferences 和 parcelable 方法,但没有用,他们也需要 (String, int)。
也尝试过这样的事情:

String noti1 = String.valueOf(notification); 
String noti2 = String.valueOf(notificationManager);

然后在 onSaveInstanceState 方法()中我可以传递它:

savedInstanceState.putString("notification1", noti1);
savedInstanceState.putString("notification2", noti2); 

但像这样恢复它:
notification = savedInstanceState.getString("notification1");
不被允许。通知对象不同于字符串对象。
那么我怎样才能引用我的通知对象呢? (应用销毁后)
我应该只恢复通知对象还是 notificationManager 和 TaskStackBuilder?

您无需保存 notification.You 始终可以使用其 notificationId 访问通知。

您始终可以 clear/stop 通过使用 notificationId 这样的通知。

notificationManager.cancel(notificationId);

更新

(崩溃的答案,Null notificationManager)

像那样在 Activity 中声明一个 notificationManager。

public class MainActivity extends AppCompatActivity {

    NotificationManager notificationManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
}

始终在 OnCreate 方法中初始化 NotificationManager。

这样你的 NotificationManager 在屏幕旋转时永远不会为 null。