Android笔记 - 如何避免ActivityNotFound异常,查看Activity堆栈信息,获取进程名
1.android中查看是否有能够打开intent的Activity
android中查看是否有能够打开intent的Activity方式有三种(如果没有打开intent的Activity,会报错ActivityNotFound)
- intent的resolveActivity
- packagemanager的resolveActivity
- packagemanager的queryIntentActivities
区别:
resolveActivity返回最佳匹配的一个Activity
queryIntentActivities返回匹配的所有Activity List
具体使用代码如下
b=(Button) findViewById(R.id.to2);
b.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent();intent.setAction("com.chj.a");
// intent.setDataAndType(Uri.parse("content://xxx"), "text/plain");if(null != intent.resolveActivity(getPackageManager())){Log.e("chj", "target activities are: "+intent.resolveActivity(getPackageManager()));startActivity(intent);}else{Toast.makeText(MainActivity.this, "Target Activity Not Found", Toast.LENGTH_SHORT).show();}if(null != getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY)){Log.e("chj", "target activities are: "+getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY));}else{Toast.makeText(MainActivity.this, "Target Activity Not Found", Toast.LENGTH_SHORT).show();}if(getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY).size()>0){Log.e("chj", "target activities are: "+getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY));}else{Toast.makeText(MainActivity.this, "Target Activity Not Found", Toast.LENGTH_SHORT).show();}}});
2.查看Activity堆栈信息:
adb shell dumpsys activity activities
log中Running activities附近的log
3.获取进程名称
public class MyApplication extends Application{@Overridepublic void onCreate() {super.onCreate();Log.v("chj", "MyApplication onCreate "+getProcessName());}public String getProcessName(){int pid = android.os.Process.myPid();String processName = "";ActivityManager manager = (ActivityManager) getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);for (ActivityManager.RunningAppProcessInfo process: manager.getRunningAppProcesses()) {if(process.pid == pid){processName = process.processName;}}return processName;}}
注意Application需要在清单文件注册android:name,否则onCreate不会执行
Android笔记 - 如何避免ActivityNotFound异常,查看Activity堆栈信息,获取进程名相关推荐
- Python 异常捕获打印堆栈信息
Python 异常捕获打印堆栈信息 对于之前只接触过Java没有接触过Python的工程师而言,或多或少会有一些语法上的困惑.本文仅限小白 异常捕获语法: try:正常代码块........ exce ...
- jstack 工具 查看JVM堆栈信息
1|0介绍 jstack是java虚拟机自带的一种堆栈跟踪工具.jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项&q ...
- 通过gdb core dump方法查看程序异常时的堆栈信息
在Linux下可通过core文件来获取当程序异常退出(如异常信号SIGSEGV, SIGABRT等)时的堆栈信息.core dump叫做核心转储,当程序运行过程中发生异常的那一刻的一个内存快照,操作系 ...
- android 分析堆栈信息,分析android异常时的堆栈信息
android framework异常时会打印如下log,分析往往无从下手: 24422 08-17 15:09:02.212 I/DEBUG ( 52): *** *** *** *** * ...
- java log.error_Logger.error打印错误异常的详细堆栈信息
一.问题场景 使用Logger.error方法时只能打印出异常类型,无法打印出详细的堆栈信息,使得定位问题变得困难和不方便. 二.先放出结论 Logger类下有多个不同的error方法,根据传入参数的 ...
- linux查看java堆栈信息_Java运行状态分析2:获取线程堆栈信息
Java运行状态分析2:获取线程堆栈信息 基本概念 出现内存泄漏或者运行缓慢场景,有时候无法直接从业务日志看出问题时候,需要分析jvm内存和线程堆栈 线程堆栈信息主要记录jvm线程在某时刻线程执行情况 ...
- JVM异常不打印堆栈信息 [ -XX:-OmitStackTraceInFastThrow ]
一. 背景 生产环境日志突然膨胀到100G+, 为了定位问题,所以截取了部分报错日志, 问题是 堆栈信息呢? 哪里报的NPE在哪??? 信息如下: [ERROR] 2020-12-09 09:41:5 ...
- C++异常中的堆栈跟踪
C++异常中的堆栈跟踪就是当程序抛出异常时,能够把抛出异常的语句所在的文件名.函数以及其它上层函数信息都打印出来. 堆栈跟踪意义重大:在实际的生产过程中,发现代码中bug要比解决bug更加费事费力,而 ...
- MiniDump文件的创建、分析堆栈信息、定位错误、查看异常处理信息
1.MiniDump文件的创建: 创建miniDump的方法有很多.可以通过MiniDumpCreateDumpWin32Api创建.必要参数为EXCEPTION_POINTERS结构,获取这个结构可 ...
最新文章
- mysql5.6.37免安装_mysql5.6免安装配置
- 【chorme插件开发】第四节:html+js实现的功能插件开发实例
- mysql存储过程和自定义函数_MySQL存储过程/存储过程与自定义函数的区别
- 计算机实验报告14,计算机14实验报告模板.doc
- SysUtils.StrLCat
- matlab动力学系统仿真 教程,MATLAB/SIMULINK动力学系统建模与仿真
- 淡雅简洁商业汇演商业计划书PPT模板
- Oracle 卸载步骤详解
- 【DT调研】关于BIM + GIS的相关知识了解
- 汇编移位: SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR
- 20145306 信息安全系统设计基础 第五周博客总结
- 深度学习GPU最全对比,到底谁才是性价比之王?
- css样式后面显示点点点
- 好用到爆!IDEA 版 Postman 面世了,功能真心强大
- Could not retrieve mirrorlist
- 《Java8实战》第8章 Collection API 的增强功能
- 网络爬虫获取股票历史行情
- MySQL Error 1236处理
- PPT结尾只会说“谢谢”?学会这些PPT结尾,观众主动为你鼓掌
- STM32控制16路舵机控制板PCA9685
热门文章
- python提取txt中指定内容_提取视频中的音频,Python三行程序搞定!
- 数据库自增主键用完了怎么办
- CTC 解码算法之 prefix beam search
- Nginx反向代理之HTTP 请求头中的 X-Forwarded-For
- 关于状态更新时间字段取值的问题
- HDU 5176 The Experience of Love 带权并查集
- Application Request Routing (ARR) TIME OUT 502
- CCF201509-1 数列分段
- C语言课后习题(53)
- java flushdb_JAVA - Redis