相关疑难解决方法(0)

如何创建一个携带数据的android Intent?

我可能误解了应该如何使用意图,所以我可能在这里问错了.如果是这样的话,无论如何都请帮助我走上正轨......

我刚刚开始研究一个Android应用程序,它会经常轮询我的服务器上的消息,当有新消息可用时,我想向用户显示它.我试图通过Service轮询服务器来实现这一点,并且当收到新消息时,服务应该将消息提供给Activity显示它的消息.

为了促进这种沟通,我正在尝试创建一个Intentwith ACTION_VIEW,但我无法弄清楚如何将消息提供给活动.有没有办法通过意图传递字符串或常规Java对象?

对于它的价值,这就是我想做的事情:

getApplication().startActivity(new Intent(MessageService.this, ViewMessageActivity.class, message));
Run Code Online (Sandbox Code Playgroud)

但当然,这甚至都没有编译.

android android-intent

30
推荐指数
2
解决办法
4万
查看次数

当点击从 WorkManager 发送的通知时,使用导航组件启动特定的 Fragment

我正在根据使用 BroadcastReceiver 启动的Worker的条件向用户发送每日通知。从Worker我只需要context发送通知。

NotificationCompat.Builder(context, CHANNEL_ID).apply {
    setContentTitle(...)
    setContentText(...)
    setContentIntent(pendingIntent(context)) 
}.build()
Run Code Online (Sandbox Code Playgroud)

如何PendingIntent使用导航组件创建启动特定片段?

我试过这个:

fun pendingIntent(context: Context): PendingIntent {
    val navController = NavController(context.applicationContext)
    navController.setGraph(R.navigation.your_navigation)
    return navController.createDeepLink()
        .setDestination(R.id.yourFragment)
        .createPendingIntent()
}
Run Code Online (Sandbox Code Playgroud)

但我得到以下例外:

Caused by: java.lang.RuntimeException: Exception inflating package.name:navigation/your_navigation line 7
        at androidx.navigation.NavInflater.inflate(NavInflater.java:90)
        at androidx.navigation.NavController.setGraph(NavController.java:425)
        at androidx.navigation.NavController.setGraph(NavController.java:407)
        at 
        ......
        at package.name.Worker.doWork(Worker.kt:15)
        at androidx.work.Worker$1.run(Worker.java:85)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
        at java.lang.Thread.run(Thread.java:761) 
Caused by: java.lang.IllegalStateException: Could not find Navigator with name "fragment". You must call NavController.addNavigator() for each navigation type. …
Run Code Online (Sandbox Code Playgroud)

java android kotlin android-architecture-components android-workmanager

4
推荐指数
1
解决办法
2732
查看次数

如何使用可能的待处理意图从服务导航到导航片段?

我正在尝试从我的通知中打开一个带有 args 的片段。实际上,就我而言,我的音频播放器与带有通知的前台服务一起运行,现在我想通过在用户单击通知时传递音频 ID 来导航到该特定音频的片段。

android mvvm android-architecture-components android-architecture-navigation navigation-architecture

3
推荐指数
1
解决办法
2765
查看次数