在 Kotlin 中通过发送广播启动新 Activity

     2023-04-19     212

关键词:

【中文标题】在 Kotlin 中通过发送广播启动新 Activity【英文标题】:Start New Activity with Sending Broadcast in Kotlin 【发布时间】:2020-07-28 15:22:20 【问题描述】:

我想在成功尝试LoginActivity 后启动DashBoardActivity。我也想在登录后广播 UserToken。但是我可以startActivity()sendBroadcast(). 如果我在LoginActivity.kt 中使用以下代码,那么

btnLogin.setOnClickListener 
    if(loginSuccess)
         sendBroadcast(Intent("TEST"))
         startActivity(Intent(this, DashboardActivity::class.java))
         finish()
    

Dashboard Activity 将打开,但广播 onReceive() 不起作用。请帮助我正确地完成这项任务。

DashBoardActivity.kt

override fun onCreate(savedInstanceState: Bundle?) 
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_dashboard)

        registerReceiver(userDataChangeReceiver,
            IntentFilter("TEST"))
    

    private val userDataChangeReceiver = object: BroadcastReceiver() 
        override fun onReceive(context: Context?, intent: Intent?) 
            println("succeess!")
        
    

【问题讨论】:

为什么要使用广播接收器?您可以启动将令牌放入意图的活动。类似于: Intent intent = new Intent(context, DashboardActivity.class); intent.putExtra(KEY, );开始活动(意图); 我的重点是广播...所以 好的,但您不应该使用广播接收器在您的应用程序中提供令牌。无论如何,您应该发布您的 DashboardActivity 代码以检查接收方是否已注册 我已经更新了帖子 问题是您在接收者注册之前发送广播。您在活动中注册接收器,但在活动尚未开始时发送广播 【参考方案1】:
override fun onCreate(savedInstanceState: Bundle?) 
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_dashboard)

  val userDataChangeReceiver = object: BroadcastReceiver() 
    override fun onReceive(context: Context?, intent: Intent?) 
        println("succeess!")
    
 

    registerReceiver(userDataChangeReceiver,
        IntentFilter("TEST"))
 

【讨论】:

DashboardActivity 已启动,但 onReceive() 方法无效!

在 Sharepoint Online 中通过快速启动打开新窗口

】在SharepointOnline中通过快速启动打开新窗口【英文标题】:OpennewwindowfromquicklaunchinSharepointOnline【发布时间】:2014-03-0523:49:19【问题描述】:<scripttype="text/javascript">//addanentrytothe_spBodyOnLoadFunctionNamesarray//sothatourfunctionwi 查看详情

在android中通过服务实现sip

】在android中通过服务实现sip【英文标题】:Implementingsipthroughserviceinandroid【发布时间】:2020-04-0822:07:04【问题描述】:我正在开发一个android应用程序,它应该接收sip呼叫。应该始终建立sip连接,所以我为此使用服务。我遇到了... 查看详情

新android在一个app中通过包名或类名启动另一个app

新的方法Android在一个APP中通过包名或类名启动另一个APPIntentintent=getPackageManager().getLaunchIntentForPackage("包名");if(intent==null)//未安装app//提示安装else//安装了Appintent.addCategory(Intent.CATEGORY_LAUNC 查看详情

在 Flink 中通过广播进行 join 操作

】在Flink中通过广播进行join操作【英文标题】:PerformingajoinoperationthroughbroadcastinFlink【发布时间】:2021-09-0814:18:05【问题描述】:我想加入一个大流和一个小得多的流。我想广播较小的流,然后将其连接到较大的流。但是我不确... 查看详情

如何在 kotlin 中通过 GSON lib 解析 JSON 时管理 android 应用程序的空值

】如何在kotlin中通过GSONlib解析JSON时管理android应用程序的空值【英文标题】:HowtomanagenullvalueforandroidapplicationwhileJSONparsingviaGSONlibinkotlin【发布时间】:2020-06-2404:21:02【问题描述】:我正在开发android应用程序并希望管理来自API的nu... 查看详情

android-----intent中通过startactivity(intentintent)显式启动新的activity(代码片段)

Intent:即意图,一般是用来启动新的Activity,按照启动方式分为两类:显式Intent和隐式Intent显示Intent就是直接以“类名称”来指定要启动哪一个Activity:Intentintent=newIntent(this,activity.class);  其中activity.class就是要指定启动的a... 查看详情

在 C# 中通过 Telnet 发送和接收命令

】在C#中通过Telnet发送和接收命令【英文标题】:SendandReceivecommandsviaTelnetinC#【发布时间】:2014-09-2618:33:21【问题描述】:我是Telnet新手,我需要用WPF(C#)编写一个小程序,通过telnet向设备发送和接收命令。开头是:发送命令“teln... 查看详情

捕获文件在 C# 中通过蓝牙发送

】捕获文件在C#中通过蓝牙发送【英文标题】:CapturefilessendoverbluetoothinC#【发布时间】:2018-12-0316:23:24【问题描述】:我正在创建一个WPF应用程序,用于通过蓝牙发送和接收文件。我正在使用32feet库。我可以使用ObexObjectPush蓝牙... 查看详情

在 Java 中通过 post 方法发送表单

】在Java中通过post方法发送表单【英文标题】:SendformbypostmethodinJava【发布时间】:2015-08-0411:04:37【问题描述】:我需要通过Java或Groovy代码发送此表单:<formaction="https://www.sandbox.paypal.com/cgi-bin/webscr"method="post"target="_top"><inpu... 查看详情

java示例代码_在java中通过UDP发送int

java示例代码_在java中通过UDP发送int 查看详情

如何在 Chrome 中通过 nativeMessaging 发送/接收短信?

】如何在Chrome中通过nativeMessaging发送/接收短信?【英文标题】:Howtosend/receivetextmessagevianativeMessaginginChrome?【发布时间】:2022-01-0916:23:34【问题描述】:我正在尝试将当前活动选项卡的url发送到python脚本。我的扩展程序已经开始... 查看详情

如何在java中通过UDP发送一个int

】如何在java中通过UDP发送一个int【英文标题】:howtosendanintthroughUDPinjava【发布时间】:2011-03-0818:21:59【问题描述】:我正在尝试编写一些通过UDP发送单个int的代码。我到目前为止的代码:发件人:intnum=2;DatagramSocketsocket=newDatagram... 查看详情

如何在 Vuex 中通过 POST 请求发送状态数据?

】如何在Vuex中通过POST请求发送状态数据?【英文标题】:HowtosendstatedataviaPOSTrequestinVuex?【发布时间】:2021-06-0906:12:14【问题描述】:背景:我有一个名为\'expense\'的Vuex状态对象,它通过“表单组件”中的表单输入字段进行更新.... 查看详情

如何在 django 中通过电子邮件发送链接?

】如何在django中通过电子邮件发送链接?【英文标题】:Howtosendlinksthroughemailindjango?【发布时间】:2020-12-1905:33:45【问题描述】:我正在学习如何在django中发送电子邮件。现在,我想尝试将链接作为电子邮件中的消息发送。请帮... 查看详情

如何在 C# 中通过 TCP 连接发送整数数组

】如何在C#中通过TCP连接发送整数数组【英文标题】:HowtosendintegerarrayoveraTCPconnectioninc#【发布时间】:2015-04-1613:44:48【问题描述】:我已经在两台计算机之间建立了一个TCP连接,用于在Windows应用程序中来回发送和接收数据。我... 查看详情

在 WCF REST 服务中通过 POST 发送参数的正确 URI 是啥?

】在WCFREST服务中通过POST发送参数的正确URI是啥?【英文标题】:WhatisthecorrectURIforsendingparametersviaPOSTinWCFRESTServices?在WCFREST服务中通过POST发送参数的正确URI是什么?【发布时间】:2011-03-2306:55:16【问题描述】:假设我在地址“http... 查看详情

如何压缩 JSONObject 在 Android 中通过 Http 发送它?

】如何压缩JSONObject在Android中通过Http发送它?【英文标题】:HowtoCompressaJSONObjectsenditoverHttpinAndroid?【发布时间】:2012-07-0907:25:54【问题描述】:我使用thisexample中的代码从Androidclient向我的网络服务器发送JSONObject。此处重现代码im... 查看详情

在 C++ 中通过套接字发送图像

】在C++中通过套接字发送图像【英文标题】:SendimagesviasocketsinC++【发布时间】:2013-03-2412:52:31【问题描述】:我正在尝试使用套接字在C++中发送图像。我面临的问题是将图像读取为二进制base64,然后将其插入char数组中以便发送... 查看详情