【发布时间】:2015-01-19 14:01:27
【问题描述】:
我正在开发 android 多用户。所以我必须将我现有的项目转换为多用户支持项目。
我的应用程序将在所有者中运行。如果我切换到用户,任何相关的 UI 操作都应该显示在所有者或用户上, 我正在使用 Context.startActivityAsUser(intent, UserHandle.Current); 因此该活动将在相应的用户或所有者上启动。 启动广播事件的方式相同。
在我的应用程序中,我使用通知作为服务的一部分,如下所示 startForeground(int id, Notification 通知);
由于服务正在运行,因此通知仅显示在所有者上,即使我切换到用户也是如此。 当最终用户切换到其他配置文件时,通知应显示在当前配置文件上。
据我所知,没有 startForeground(...) 作为用户(我的意思是 startForegroundAsUser()),所以我已将通知内容转换为 NotificationManager.notifyAsUser(null, appID, notification, UserHandle.CURRENT); …… 当我从所有者切换到用户时,我的应用程序崩溃并且日志也不清楚以查找问题。 Logcat 只是说 I/ActivityManager(421): 进程 com.example.test (pid 5833) 已经死亡 W/ActivityManager(421):计划在 1000 毫秒内重新启动崩溃的服务 com.example.test/com.example.test.testservice ...... ...... .....
但服务未启动,因为顶级配置文件是 CURRENT。
让我知道实现此目的的另一种方法。
【问题讨论】:
标签: android android-notifications multi-user