activity

android中的bundle使用

。_饼干妹妹 提交于 2019-12-05 22:00:35
1 Bundle介绍 Bundle主要用于传递数据;它保存的数据,是以key-value(键值对)的形式存在的。 我们经常使用Bundle在Activity之间传递数据,传递的数据可以是boolean、byte、int、long、float、double、string等基本类型或它们对应的数组,也可以是对象或对象数组。当Bundle传递的是对象或对象数组时,必须实现 Serializable 或Parcelable 接口。下面分别介绍Activity之间如何传递基本类型、传递对象。 2传递基本类型 Bundle提供了各种常用类型的putXxx()/getXxx()方法,用于读写基本类型的数据。Bundle操作基本数据类型的API表格如下所示: 写数据的方法如下: // "com.test" is the package name of the destination class// "com.test.Activity02" is the full class path of the destination classIntent intent = new Intent().setClassName("com.bundletest", "com.bundletest.Bundle02"); Bundle bundle = new Bundle();bundle.putString(

Activity详解(生命周期、以各种方式启动Activity、状态保存,完全退出等)

半城伤御伤魂 提交于 2019-12-05 21:51:12
一、什么是Activity? 简单的说:Activity就是布满整个窗口或者悬浮于其他窗口上的交互界面。在一个应用程序中通常由多个Activity构成,都会在Manifest.xml中指定一个主的Activity,如下设置 <activity android:label="@string/app_name" android:name=".MainActivity" > <intent-filter > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 当程序第一次运行时用户就会看这个Activity,这个Activity可以通过启动其他的Activity进行相关操作。当启动其他的Activity时这个当前的这个Activity将会停止,新的Activity将会压入栈中,同时获取用户焦点,这时就可在这个Activity上操作了。都知道栈是先进后出的原则,那么当用户按Back键时,当前的这个Activity销毁,前一个Activity重新恢复。 二、Activity生命周期 先看下图: 这个图不再多说什么,下面我们通过一个实例来说明问题。新建工程

面试大厂无压力,github上大佬面试题年度总结,19年大厂面试题集合

心不动则不痛 提交于 2019-12-05 21:24:28
经常分享各大厂的面试题,有朋友就问,都快2020年了,你怎么不总结下分享出来,现在研究研究,年后就可以找工作换工作加一笔 ok,安排 今天就给大家带来github上大佬面试题年度总结,让你面试大厂无压力 从基础到进阶,通通安排 Java 基础知识点面试专题 、 java 深入源码级的面试题 、 Android 常见原理性面试专题 、 Android 面试 、 Android 面试常问基础知识点 、 Android 面试帮助 、 2019Android 多线程总结 、 混合开发面试题 、 高端技术面试题、Android 源码相关面试专题、安卓面试突破专题课程、高端技术面试题 , 还有辅之相关的视频+学习笔记 篇幅有限,只展现了部分问题,其余问题和答案我都整理成了一个文档,关注我,留言【面试】赠送给我的粉丝 Java 基础知识点面试专题 java 中和 equals 和 hashCode 的区别 int、char、long 各占多少字节数 int 与 integer 的区别 谈谈对 java 多态的理解 String、StringBuffer、StringBuilder 区别 什么是内部类?内部类的作用 抽象类和接口区别 泛型中 extends 和 super 的区别 父类的静态方法能否被子类重写?静态属性和静态方法是否可以被继承? 进程和线程的区别 java 深入源码级的面试题

Testing和Instrumentation

ⅰ亾dé卋堺 提交于 2019-12-05 20:43:00
Android 提供了一系列强大的测试工具,它针对 Android 的环境,扩展了业内标准的 JUnit 测试框架。尽管你可以使用 JUnit 测试 Android 工程,但 Android 工具允许你为应用程序的各个方面进行更为复杂的测试,包括单元层面及框架层面。 Android 测试环境的主要特征有: 可以访问 Android 系统对象。 Instrumentation 框架可以控制和测试应用程序。 Android 系统常用对象的模拟版本。 运行单个 test 或 test suite 的工具,带或不带 Instrumentation 。 支持以 Eclipse 的 ADT 插件和命令行方式管理 Test 和 Test 工程。 这篇文章是对 Android 测试环境和测试方法的简要介绍,并假设你已经拥有一定的 Android 应用程序编程及 JUnit 测试的经验。 概要 Android 测试环境的核心是一个 Instrumentation 框架,在这个框架下,你的测试应用程序可以精确控制应用程序。使用 Instrumentation ,你可以在主程序启动之前,创建模拟的系统对象,如 Context ;控制应用程序的多个生命周期;发送 UI 事件给应用程序;在执行期间检查程序状态。 Instrumentation 框架 通过将主程序和测试程序运行在同一个进程来实现这些功能。

android databinding之include

蹲街弑〆低调 提交于 2019-12-05 15:46:01
由于前段时间了解到了google推出的数据绑定框架databinding,就使用它实现了一个简单的android的mvvm架构思想的demo。 使用过程之中很happy,按照其使用方式,框架会自动生成布局文件对应的XXXBinding类文件。再也不用findViewById了,也再也不用使用注解框架在Activity或者Fragment中写大量的控件属性了,哇,整个世界都清净了。。。。这感觉太爽了。。。 结果遇到问题了,也不知道怎么解决。。。。幸好有google老师带我们学习。 前面都是废话,下面就详细分析我遇到的问题吧! 使用一个Activity + 对应的布局文件举例: DemoActivity: public class DemoActivity extends BaseActivity<DemoVM, ActivityDemoBinding> { @Bind(R.id.linkTv) TextView linkTv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initWidget(); } @Override protected void initBinding() { setBinding

Android异常:that was originally added here

核能气质少年 提交于 2019-12-05 15:03:39
02-19 15:08:02.228: E/WindowManager(22172): Activity com.test.activity.TestActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@427bebc8 that was originally added here 02-19 15:08:02.228: E/WindowManager(22172): android.view.WindowLeaked: Activity com.test.activity.TestActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@427bebc8 that was originally added here 02-19 15:08:02.228: E/WindowManager(22172): at android.view.ViewRootImpl.<init>(ViewRootImpl.java:438) 02-19 15:08:02.228: E/WindowManager(22172): at android.view

Android Intent机制实例详解(Activity篇)

本小妞迷上赌 提交于 2019-12-05 13:04:10
Android Intent机制实例详解(Activity篇) Android 中提供了 Intent 机制来协助应用间的交互与通讯,或者采用更准确的说法 是, Intent 不仅可用于应用程序之间,也可用于应用程序内部的 Activity/Service 之间的交互。 Intent 这个英语单词的本意是“目的、意向”等,对于较少从事 于大型平台开发工作的程序员来说, 这可能 是一个不太容易理解的抽象概念,因为它与我们平常使用的简单函数 / 方法调用,或者上节中提到的通过库调用接口的方式不太一样。在 Intent 的使用中你看不到直接的函数调用,相对函数调用来说, Intent 是更为抽象的概念,利用 Intent 所实现的软件复用的粒度是 Activity/Service ,比函数复用更高一些,另外耦合也更为松散。 Android 中与 Intent 相关的还有 Action/Category 及 Intent Filter 等,另外还有用于广播的 Intent ,这些元素掺杂在一起,导致初学者不太容易迅速掌握 Intent 的用法。在讲解这些名词之前,我们先来从下面的例子中 感受一下 Intent 的一些基本用法,看看它能做些什么,之后再来思考这种机制背后的意义。 理解 Intent 的关键之一是理解清楚 Intent 的两种基本用法:一种是显式的 Intent ,即在构造

[Android] IntentFilter-->Action、Category属性详解

醉酒当歌 提交于 2019-12-05 13:02:45
如果一个 Intent 请求在一片数据上执行一个动作, Android 如何知道哪个应用程序(和组件)能用来响应这个请求呢? Intent Filter就是 用来注册 Activity 、 Service 和 Broadcast Receiver 具有能在某种数据上执行一个动作的能力。 使用 Intent Filter ,应用程序组件告诉 Android ,它们能为其它程序的组件的动作请求提供服务,包括同一个程序的组件、本地的或第三方的应用程序。 为了注册一个应用程序组件为 Intent 处理者,在组件的 manifest 节点添加一个 intent-filter 标签。 在 Intent Filter 节点里使用下面的标签(关联属性),你能指定组件支持的动作、种类和数据。 1、动作测试: <activity android:name="com.x210.intentfilters.OneActivity" android:label="oneActivity"> <intent-filter> <action android:name="myapp.action.test1" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> 规则a.一条

通过Intent传递类对象

两盒软妹~` 提交于 2019-12-05 13:01:52
一、Intent是什么 1、定义 Intent被译作意图,其实还是很能传神的,Intent期望做到的,就是把实现者和调用者完全解耦,调用者专心将以意图描述清晰,发送出去,就可以梦想成真,达到目的。 这 个解释还是有点不太好理解,下面还有一个:Intent是一种运行时绑定(run-time binding)机制,它能在程序运行过程中连接两个不同的组件。通过Intent,你的程序可以向Android表达某种请求或者意愿,Android 会根据意愿的内容选择适当的组件来完成请求。比如,有一个Activity希望打开网页浏览器查看某一网页的内容,那么这个Activity只需要发出 WEB_SEARCH_ACTION给Android,Android就会根据Intent的请求内容,查询各组件注册时声明的 IntentFilter,找到网页浏览器的Activity来浏览网页。 这个解释好像理解起来就容易好多,我们通过intent传入某种意图,而android就会根据这种意图,自动寻找合适的activity来启动,如果有 多个条件符合的activity,就以列表的方式让用户手动选择一个。 2、 显示Intent与 隐式I ntent 这两个概念刚开始不太好理解,先看两个通过intent启动activity的代码: 例一: Intent intent = new Intent(); intent

android Style

风流意气都作罢 提交于 2019-12-05 12:42:03
Android上的Style分为了两个方面: 1. Theme是针对窗体级别的,改变窗体样式; 2. Style是针对窗体元素级别的,改变指定控件或者Layout的样式。 Android系统的themes.xml和style.xml(位于 \base\core\res\res\values\ )包含了很多系统定义好的style,建议在里面挑个合适的,然后再继承修改。 以下属性是在Themes中比较常见的,源自Android系统本身的themes.xml: <!-- Window attributes --> <item name="windowBackground">@android:drawable/screen_background_dark</item> <item name="windowFrame">@null</item> <item name="windowNoTitle">false</item> <item name="windowFullscreen">false</item> <item name="windowIsFloating">false</item> <item name="windowContentOverlay">@android:drawable/title_bar_shadow</item> <item name=