应策划要求,做一个左下角悬浮框的效果,于是快马加鞭,写了个Popup,接关就遇到了下面这个诡异的异常。
在调用Popup时,出现"is your activity running"异常,针对该异常信息的提示,认为是该Activity未启动,加上this.isFinishing方法,无用,判断可能出现Context被锁住,改写代码,无用,this、this.getParent(NullPrintException)、getApplicationContext通通试过,无用,猜想可能是Activity未加载完导致该问题,使用Thread.sleep(),无用,参考网友提示:Handler+Runnable,无用,奇怪的是,在某点击事件里,调用该Popup时,无问题,遇到这种奇怪的异常,真是束手无策,不得已,换成了Dialog,解决问题。
之前之所以没有使用Dialog,是不知道Dialog可以设置在屏幕中的坐标位置,最后打算和策划说明问题时,抱着试一试的心态,上网查了Dialog设置坐标的事,原是可以的,相关代码附上:
Window window = dialog.getWindow();
WindowManager.LayoutParams lp = window.getAttributes();
lp.x = x; //坐标点0,0为屏幕中心点
lp.y = y;
window.setAttributes(lp);
关于Popup的那个异常,有哪位高手有解决方案,望能提示一二。
续:调用Popup需要Activity完成全部生命周期之后,runnable+handler理论上是可以的,经过测试没用,说明在生命周期里使用线程刷新UI时,生命周期并没有执行完,响应按键事件必须在Activity生命周期(到onResume())结束后,这也就是为什么在点击事件里,可以调用Popup。
分享到:
相关推荐
在实际使用中,需要注意避免在Activity未创建时就调用`showPopup()`,因为这可能导致"Is your activity running?"的错误。确保在正确的生命周期方法(如`onCreate()`)中进行初始化和数据绑定。 总的来说,Android ...
嵌入式系统开发_STM32微控制器_ESP8266WiFi模块_心率传感器_加速度计_OLED显示屏_蓝牙40_低功耗设计_实时操作系统_智能手表_多功能健康监测_运动数据记录_
驾校自动化_网页自动化爬虫技术_Python27多线程HTTP请求模拟_龙泉驾校2014版约车系统自动预约助手_通过模拟登录和循环请求实现自动约车功能_支持失败自动递增车号重试_
Linux系统编程_操作系统内核_系统调用_进程线程_信号处理_文件IO_进程间通信_多线程同步_网络编程_UNIX环境编程_中文翻译勘误_错误修正_代码示例优化_技术文档校对_开
wanjunshe_Python-Tensorflow_12888_1745868924470
scratch少儿编程逻辑思维游戏源码-铅笔画.zip
即时通讯应用开发_基于LeanCloud云服务与Android原生开发_集成QQ第三方登录与即时聊天功能的社交应用_实现用户注册登录创建聊天室发送文字消息展示用户信息头像昵称并提供
scratch少儿编程逻辑思维游戏源码-伞兵大乱斗(云变量).zip
scratch少儿编程逻辑思维游戏源码-楼层酷跑.zip
scratch少儿编程逻辑思维游戏源码-零下之寒颤.zip
scratch少儿编程逻辑思维游戏源码-密室逃生.zip
少儿编程scratch项目源代码文件案例素材-爪猫足球.zip
命令行完成git本地仓库创建、将代码提交到暂存区、查看暂存区信息、将代码提交到本地仓库、将本地仓库关联到远程仓库、推送到远程仓库全过程的截图
少儿编程scratch项目源代码文件案例素材-纸.zip
scratch少儿编程逻辑思维游戏源码-日本冒险.zip
scratch少儿编程逻辑思维游戏源码-狼人杀跑酷.zip
scratch少儿编程逻辑思维游戏源码-史莱姆杀手.zip
少儿编程scratch项目源代码文件案例素材-粘粘世界.zip
scratch少儿编程逻辑思维游戏源码-米克 demo.zip
网络游戏开发_Netty4X框架_多协议支持_高性能分布式游戏服务器_基于TCP_UDP_HTTP_WebSocket协议栈_Protobuf自定义通信协议_RPC远程调用_My