我有一个具有正常运行功能的Android应用程序,现在我已迁移到Android 9(以前以Android 8为目标),但该功能有些破绽。
我有这个流程(启动应用程序时):
定位Android 9之后,通知不会在步骤4中消失。 结果是,执行完操作后,我仍然可以轻按通知,然后该操作再次发生(不需要的行为)。
此行为更改似乎没有记录(以前的默认设置是在执行操作后关闭通知)。如何使我的应用按旧方式工作?
问题:如何恢复以前的行为? (当触发操作并且用户看到操作时,通知会自动关闭)
更新:一些(经过修剪/简化的)代码有望阐明其工作原理
public class FooActivity extends AppCompatActivity {
}
public class NotificationUtil {
// A lot of boilerplate omitted where notification channels are created
public void notify(Intent startActivity) {
ContextProvider.getSystemService(Context.NOTIFICATION_SERVICE).notify("NotificationUtil", 0, new NotificationCompat.Builder().nextIntent(startActivity).x().y().build());
}
}
因此,第2步将Intent操作设置为FooActivity触发NotificationUtil.notify()。 FooActivity会在打开屏幕时按预期自动启动(例如,我认为隐式“消耗”了通知。但是该通知仍保留在通知栏中,并且可以再次点击并启动FooActivity(不需要的行为)。
参考