intent.putExtra("name", name); // 传递性别 intent.putExtra("sex", sex); // 如果希望在活动销毁的时候能够返回一个结果给上一个活动...如果活动显式返回,则不会返回任何结果,或者在操作期间崩溃,resultCode将为RESULT_CANCELED。 当您的活动重新启动时,您将在onResume()之前立即收到此调用。...resultCode int:子活动通过其setResult()返回的整数结果代码。...由于在一个活动中有可能调用startActivityForResult()方法去启动很多不同的活动,每一个活动返回的数据都会回调到onActivityResult()这个方法中,因此我们首先要做的就是通过...此类的实例表示RFC 2396定义的语法意义上的URI引用.URI可以是绝对的或相对的。根据通用语法解析URI字符串,而不考虑它指定的方案(如果有的话)。
这个接口,于是 SharedElementCallbackImpl 的父接口就无法解析,于是导致了上面的错误出现。...也就是说,我本来只是想要拿到 AppCompatActivity 的某一个子类的全部父类和接口,结果把 ActivityCompatApi23 这厮招魂似的招了出来。 谁是那个寄 Crash 的?...其实是有问题的,因为这段代码本身就是运行在 AppCompatActivity 的子类中的,也就是说这时候 AppCompatActivity 肯定早就完成了类加载,相应的,在它加载链接的过程中,它的父类们也通通会被加载到虚拟机中...从类加载的角度讲,加载前者并不会直接引发后者的加载(除非前者引用了后者),原因也很简单,前者是一个接口,你可以把它当做一个静态内部类,从语言层面看,它对外部类通常没有直接的依赖。...Android Support 库里面 FragmentActivity 的父接口里面居然有对涉及到兼容 Api 的显式引用,这个写法简直了,臭臭的。。 我觉得这事儿不怪 Kotlin ! ----
Android中的异步消息机制分为四个部分:Message、Handler、MessageQueue和Looper。...②当子线程处理完耗时操作,需要将处理结果反馈到UI中时,先创建一个Message对象,并让其what字段携带一个int值,然后通过Handler对象发送出去。...由于Handler对象是在主线程中创建的,所以可以在handleMessage()方法中安心地进行UI操作。 通过一个例子来验证一下:活动MainActivity中有一个按钮和一个TextView。...; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View...对于这种使用了静态内部类来避免内存泄露,同时又需要调用外部类的方法的情况:可以使用弱引用!即我们在该内部类中声明一个对外部类对象的弱引用。这样即可以调用外部类的方法,又不会导致内存泄露。
> 步骤3:设置Activity的类文件 Activity2Fragment public class Activity2Fragment extends AppCompatActivity {.../ 步骤7:动态添加fragment // 即将创建的fragment添加到Activity布局文件中定义的占位符中(FrameLayout) fragmentTransaction.add...接口回调 回顾 把实现了某一接口的类所创建的对象的引用 赋给 该接口声明的变量,通过该接口变量 调用 该实现类对象的实现的接口方法。...// 接口声明的变量 Com com; // 实现了Com接口的类(Com1)所创建的对象的引用 赋给 该接口声明的变量 Com com = new Com1; // 通过该接口变量(com) 调用...文章系列: Carson带你学Android:页面活动-Activity Carson带你学Android:广播-BroadcastReceiver Carson带你学Android:服务-Service
我们知道四大基础组件有生命周期,能感知这些生命周期的组件就具备了生命周期感知能力,所以我认为以前我们使用的 MVP 模式中的 Presenter 如果它通过接口等方式间接获得了 Activity 的生命周期...( AppCompatActivity / Fragment 等)抽象出生命周期所有权,并允许任何自定义应用程序类都可以实现 LifecycleOwner 接口 实现一个简单的生命周期感知组件 我们通过一个简易计时器的例子来进行调整...,在 Android Jetpack - ViewModel 中,我们实现了一个简易计时器,该计时器可以在 Activity 处于配置更改或后台的情况下继续计时,我们现在利用 Lifecycle 修改它...这使您可以使视图更具说明性,并最大限度地减少在活动和片段中编写所需的更新代码。...这可能是一项艰巨的任务,但它可以使您的 UI 组件更容易测试 避免在 ViewModel 中引用 View 或 Activity 上下文。
-- 在前几篇博客示例中 , 协程中 如果出现异常 , 没有进行捕获 , 则程序直接崩溃 , 这种情况下需要进行 异常的捕获 以 避免 Android 应用程序的崩溃 ; 示例代码 : package...kim.hsl.coroutine import android.os.Bundle import android.util.Log import androidx.appcompat.app.AppCompatActivity...全局异常处理器 ---- Android 中的 全局异常处理器 , 可以 获取 所有的 协程 中产生的 没有被捕获的异常 ; 无法阻止崩溃 : 全局异常处理器 不能捕获这些异常 进行处理 , 应用程序...; ④ 创建 协程的 全局异常处理器 MyCoroutineExceptionHandler 自定义类 , 需要 实现 CoroutineExceptionHandler 接口 ; 并覆盖接口中的...: ⑥ 在 Activity 中实现一个 抛出异常的协程 : package kim.hsl.coroutine import android.os.Bundle import android.util.Log
在 Android 开发中,内存泄漏是一个常见的问题。这个问题可能会导致应用程序变慢、崩溃或者消耗大量的内存,最终导致设备性能下降。...如在后台线程中执行网络请求或数据库操作,在任务完成后未正确处理对象的引用会导致内存泄漏。...// 任务执行完毕后,及时将相关对象引用置空 } }).start(); } Context 的错误引用 在Android开发中,Context引用是非常常见的内存泄漏原因...当将一个长生命周期的对象与Context关联时,如果未正确解除引用,将导致Context无法被回收。...避免 Handler 导致的内存泄漏:使用静态内部类和对外部类的弱引用来避免Handler导致的内存泄漏。 结论 内存泄漏是一个常见的问题,在 Android 开发中需要注意。
本地方法,不能修改本地方法名 annotations 注释 数据库驱动 有些resource 文件 用到反射的地方 5.ANR出现的场景及解决方案 在Android中,应用的响应性被活动管理器...适配器模式:将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper) 装饰模式:动态地给一个对象增加一些额外的职责,就增加对象功能来说,装饰模式比生成子类实现更为灵活.../接口的实例实现了父类提供的抽象方法后,将该方法交还给父类来处理 Listview中的notifyDataSetChanged RxJava中的观察者模式 责任链模式:是一个请求有多个对象来处理,这些对象是一条链...的结果,用代码实现 24.写出单例模式,哪些是线程安全的,为什么是线程安全的 25.Retrofit实现原理 26.android图片有哪些格式 答案:http://blog.csdn.net/xmc281141947...在closeDatabase()方法中我们同样通过判断引用计数的值,如果引用计数降为0,则说明我们需要close数据库。
最后,我们在onPostExecute()方法中将请求结果显示在TextView中。...android:theme:可选属性,用来指定应用程序的主题样式。:用于声明应用程序的活动组件(Activity)。...android:name:必需属性,用来指定活动类的名称。android:label:可选属性,用来指定活动的显示名称。...android:theme:可选属性,用来指定活动的主题样式。:用于声明应用程序的服务组件。android:name:必需属性,用来指定服务类的名称。...AndroidManifest.xml文件的作用是向系统介绍应用程序的功能和组件,并声明应用程序所需的权限。在构建和运行应用程序时,系统会读取和解析该文件,并根据其中的声明进行相应的处理。
MainAcivity.java代码分析 顾名思义,Main的意思是主要的,Acivity的意思是活动;那么,MainAcivity.java源文件的作用肯定就是: 主要的活动窗口。...我们来跟踪一下AppCompatActivity的源码: 1.键盘长按Ctrl键,鼠标左键点击AppCompatActivity,AS会带我们来到AppCompatActivity类所在的源码位置;...我给翻译一下就是: 所有在App中能看到的和做的都是在Activity上。...,有了它,就可以引用Android给我们提供好的控件属性; layout_width表示布局的宽,layout_height表示布局的高,有3种值:match_parent撑满父布局,wrap_content...””中写上内容,不过不推荐; android:id=”@+id/textview”表示该TextView的id是textview,方便在Java代码中进行实例化初始化; @表示通过一个id引用一个内容
插件 Android 框架中定义的大多数应用组件都具有生命周期。...如果你想管理整个应用进程的生命周期可以看看这个 ProcessLifecycleOwner 这个接口从单个类中抽象出生命周期的所有权,例如 Activity 和 Fragment,可以与你写的组件共享生命周期...自定义生命周期所有者 支持库 26.1.0 以及更高版本中的 Fragment 和 Activity 已经实现了 LifecycleOwner 接口。...不幸的是,在 onSaveInstanceState() 之后调用了 AppCompatActivity 的 onStop() 方法,这留下了一个空白,在该空白中,不允许 UI 状态更改,但生命周期尚未移至...这将创建一个可能较长的时间间隔,在该时间间隔中,即使无法修改其 UI 状态,观察者仍认为生命周期处于活动状态。
阅读本文前,建议阅读Android:Fragment最全面介绍 & 使用方法解析 ---- 问题1: Activity 如何传递数据到 Fragment? 答:采用 Bundle方式。...> 步骤3:设置Activity的类文件 Activity2Fragment public class Activity2Fragment extends AppCompatActivity {.../ 步骤7:动态添加fragment // 即将创建的fragment添加到Activity布局文件中定义的占位符中(FrameLayout) fragmentTransaction.add...接口回调 回顾 把实现了某一接口的类所创建的对象的引用 赋给 该接口声明的变量,通过该接口变量 调用 该实现类对象的实现的接口方法。...// 接口声明的变量 Com com; // 实现了Com接口的类(Com1)所创建的对象的引用 赋给 该接口声明的变量 Com com = new Com1; // 通过该接口变量(com) 调用
,通过将值发送到通道来生成值流 * 并返回对协程的引用作为[receichannnel]。...* * 此协程中任何未捕获的异常将以此异常作为原因和关闭通道 * 结果通道将变成_failed_,因此此后任何试图从它接收的尝试都会抛出异常。...* * 生成的通道类型取决于指定的[capacity]参数。 * 详细信息请参见[Channel]接口文档。...* 并返回对其邮箱通道的引用作为[SendChannel]。...发送到此演员的邮箱通道。 * * 此协程中未捕获的异常将以此异常作为原因和关闭通道 * 结果通道变成_failed_,因此任何发送到该通道的尝试都会抛出异常。
ARouter 直接翻译过来就是路由,可以用来映射页面关系,实现跳转相关的功能。在 Android 中,常被用来进行组件化通讯。...实际上,它的原理是通过将 object 转化成 String,然后存进 intent 中,在解析参数的时候,再通过相应的 key 去除 String,然后转化成 object。...,这样使用 @Autowired 的会自动解析 ARouter.getInstance().inject(this); } 实现跳转并获取返回结果 在 activity 的跳转中,我们知道...,我们可以用 startActivityForResult 来获取返回结果,那在 ARouter 中要怎么实现呢。...Android 四大组件中的 Service,这里的服务是接口开发的概念。
Fragment概述 1.1 介绍 Fragment是一种可以嵌入在活动中的UI片段,能够让程序更加合理和充分地利用大屏幕的空间,出现的初衷是为了适应大屏幕的平板电脑,可以将其看成一个小型Activity...的remove()、replace()方法将碎片从从活动中移除,但如果在事务提交之前调用addToBackStack()方法,这时的碎片也会进入到停止状态。...Fragment与Activity的通信交互如上图所示: 如果Activity中包含自己管理的Fragment的引用,可以通过引用直接访问所有的Fragment的public方法 如果Activity中未保存任何...");//是电梯,别误会 4.2 传递数据给Activity 步骤流程: 在Fragment中定义一个内部回调接口,再让包含该Fragment的Activity实现该回调接口 Fragment通过回调接口传数据...(String code); } Fragment类中定义该接口 private Mylistener listener; 在onAttach方法中,将定义的该接口强转为activity类型 @Override
原理是早已走通了,剩下的就是苦力活,写C代码,写JNI代码,对接口一一封装。 现在终于不用遗憾了,因为已经有人做了我一直想做的事,而且是以我想要的思路。...简单的直观的解释,它是在Android Studio中基于Gradle的构建系统实现的一个插件。它可以帮助我们用最简便的方式实现Android技术与Python混合编程。...注意,生成的代码并不在src下,在方法中引用一下MainActivityEx,并自动导包后,可点进去查看生成的源码 // Generated at 2019-08-31T12:29:18Z with the...JNI接口使得C语言能反射Java的类与方法,而Python运行在C语言之上,那么Python也就具备了调用Java的能力。...内存管理 如果Python对象引用直接或间接引用原始Python对象的Java对象,则可以创建跨语言引用循环。任何一种语言的垃圾收集器都无法检测到这样的循环。避免内存泄漏。
button说明 就这样,我们就在活动中加入了一个Button控件,并且命名为Hello World,但是有没有发现活动上现实的名称和我们输入的名称是不是不一样呢?...现在我们的按钮正常显示在活动中,但是我们该怎么让他点击时能够响应,其实响应的方法有很多,下面就来说说常见的两种响应方法 添加响应事件 匿名内部类 <第一种方法就是在ButtonActivity中为Button...button点击响应说明 这样,每当点击按钮的时候,就会执行监听器中onClick()方法,我们只需要在这个方法中加入我们需要处理的逻辑就好。...实现接口 第二种方法就是使用实现接口的方法进行实现注册监听器的功能,代码如下所示: package com.example.jkwu.uicomponent; import android.support.v7...button点击响应说明 上面两种方法是最常用的响应点击事件的方法 到此这篇关于Android开发中Button组件的使用的文章就介绍到这了,更多相关Android中Button组件内容请搜索ZaLou.Cn
; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View...Activity中有一个startActivityForResult()方法,这个方法期望在活动销毁的时候能够返回一个结果给上一活动。...requestCode和resultCode一起配合用来验证是不是我们所需要的那个活动传回来的值。...一 、二的结果: ?...image.png 三的结果: ? ? image.png ? image.png
内存泄漏 什么是内存泄漏 内存泄漏(Memory Leak):是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。...常见的内存泄漏 单例造成的内存泄漏 单例在Android中经常使用,如果使用不当会造成内存泄漏,因为单例的静态特性使得他的生命周期与应用的生命周期一样长,这就造成当前对象的生命周期比单例短,单例又持有该对象的引用...非静态内部类会持有外部类的引用,这里的postDelayed是一个延迟处理消息,将一个handler装入到message中,将消息放进消息队列messageQueue由Looper进行取消息进行处理。...动画资源未释放导致内存泄漏 比如: public class LeakActivity extends AppCompatActivity { private TextView textView...查了很多资料,发现这是 Android SDK中输入法的一个Bug,在15<=API<=23中都存在,目前Google还没有解决这个Bug。
前言 在Android中,内存泄露的现象十分常见;而内存泄露导致的后果会使得应用Crash 本文 全面介绍了内存泄露的本质、原因 & 解决方案,最终提供一些常见的内存泄露分析工具,希望你们会喜欢。...内存回收策略 步骤1:Application Framework 决定回收的进程类型 Android中的进程 是托管的;当进程空间紧张时,会 按进程优先级低->>高的顺序 自动回收进程 Android将进程分为...每次启动Activity时都会使用该单例的数据 public class TestActivity extends AppCompatActivity { // 非静态内部类的实例的引用...主要包括:Context、WebView、Adapter,具体介绍如下 1.png 5.6 总结 下面,我将用一张图总结Android中内存泄露的原因 & 解决方案 1.png 6....& 可通过视图直观地查看可能造成这种结果的对象 具体使用:MAT使用攻略 6.2 Heap Viewer 定义:一个的 Java Heap 内存分析工具 作用:查看当前内存快照 可查看 分别有哪些类型的数据在堆内存总
领取专属 10元无门槛券
手把手带您无忧上云