activity

Android xml activity属性详解

孤街浪徒 提交于 2019-12-04 13:50:01
例子: <activity android:allowTaskReparenting=["true" | "false"] android:alwaysRetainTaskState=["true" | "false"] android:clearTaskOnLaunch=["true" | "false"] android:configChanges=["mcc", "mnc", "locale", "touchscreen", "keyboard", "keyboardHidden", "navigation", "orientation", "screenLayout", "fontScale", "uiMode"] android:enabled=["true" | "false"] android:excludeFromRecents=["true" | "false"] android:exported=["true" | "false"] android:finishOnTaskLaunch=["true" | "false"] android:icon="drawable resource" android:label="string resource" android:launchMode=["multiple" | "singleTop" |

Toast.maketext第一个参数context的问题

我怕爱的太早我们不能终老 提交于 2019-12-04 13:48:48
在Android工程中经常用到 Toast来显示提示,在maketext的第一个参数是要求传递一个context 那么问题来了 有时候是使用getApplicationContext(); 有时候是Activity.this 而有时候又直接是 this 在android中常常会遇到与context有关的内容,大多都是作为参数在传递,但是它的作用究竟是什么呢 先说它的用法,举个例子 在语句 AlertDialog.Builder builder = new AlertDialog.Builder(this); 中,要求传递的参数就是一个context,在这里我们传入的是this,那么这个this究竟指的是什么呢? 这里的this指的是Activity.this,是这个语句所在的Activity的this,是这个Activity 的上下文。网上有很多朋友在这里传入this.getApplicationContext(),这是不对的。 AlertDialog对象是依赖于一个View的,而View是和一个Activity对应的。 于是,这里涉及到一个生命周期的问题,this.getApplicationContext()取的是这个应用程序的Context,Activity.this取的是这个Activity的Context,这两者的生命周期是不同的,前者的生命周期是整个应用

NFC交互实现--hce读卡器

匆匆过客 提交于 2019-12-04 13:36:46
目前 NFC 应用的大的框架上的理解: 使用 API LEVEL 19及以上, 支持的 API 有三个: android.nfc,android.nfc.cardemulator,android.nfc.tech NFC 在手机上的应用大体分为两类:读卡器和卡 android.nfc.cardemulator 接口是为 NFC 作为卡应用提供的接口,在较低版本的 API 上是没有的 android.nfc.tech , android.nfc 接口是为 NFC 作为读卡器应用提供的接口 NFC数据过滤 NFC有三种过滤器分别是ACTION_NDEF_DISCOVERED,ACTION_TECH_DISCOVERED,ACTION_TAG_DISCOVERED。 1. ACTION_NDEF_DISCOVERED 当扫描到的tag中包含有NDEF载荷且为已知类型,该intent将用来启动Activity。该intent的优先级最高,tag分发系统总是先于其他intent用该intent来启动Activity。 2. ACTION_TECH_DISCOVERED 如果manifest中没有注册处理ACTION_NDEF_DISCOVERED类型的intent,该intent将被用以启动Activity。如果tag中没有包含可以映射到MIME或者URI类型的数据

Android ActionBar完全解析(上)

空扰寡人 提交于 2019-12-04 09:18:25
} 这部分代码很简单,仅仅是调用了MenuInflater的inflate()方法来加载menu资源就可以了。现在重新运行一下程序,结果如下图所示: 可以看到,action_compose和action_delete这两个按钮已经在ActionBar中显示出来了,而action_settings这个按钮由于showAsAction属性设置成了never,所以被隐藏到了overflow当中,只要点击一下overflow按钮就可以看到它了。 这里我们注意到,显示在ActionBar上的按钮都只有一个图标而已,我们在title中指定的文字并没有显示出来。没错,title中的内容通常情况下只会在overflow中显示出来,ActionBar中由于屏幕空间有限,默认是不会显示title内容的。但是出于以下几种因素考虑,即使title中的内容无法显示出来,我们也应该给每个item中都指定一个title属性: 当ActionBar中的剩余空间不足的时候,如果Action按钮指定的showAsAction属性是ifRoom的话,该Action按钮就会出现在overflow当中,此时就只有title能够显示了。 如果Action按钮在ActionBar中显示,用户可能通过长按该Action按钮的方式来查看到title的内容。 下载Action按钮图标 Google为我们绘制好了很多Action按钮

dialog,activity 屏蔽Home键详解

与世无争的帅哥 提交于 2019-12-04 06:47:38
相信在Android应用上,很多时候逻辑是需要屏蔽Home键的,但这个用户体验是否需要,就看各位的需求了。 一般的方法屏蔽Home键,大家一定看过不少文章了。我总结一下,先说一下一般情况下Activity的屏蔽按键和Home键吧。 屏蔽其他键,重写onKeyDown Java代码 @Override public boolean onKeyDown( int keyCode, KeyEvent event) { Log.i(TAG, "keycode=" +keyCode + " isBan=" +isBan); switch (keyCode) { case KeyEvent.KEYCODE_BACK: Log.i(TAG, "KEYCODE_BACK" ); return true ; } return super .onKeyDown(keyCode, event); } 大家会发现,这里屏蔽Home键是捕捉不到的,因为大家的权限一般是User所以是无效的。 而其实android处理Home键等系统级按键是有一定的处理的。 引用 看看源码是怎样处理的 \frameworks\policies\base\phone\com\android\internal\policy\impl\PhoneWindowManager.java #1092 Java代码 // First we

Fragment应用

你说的曾经没有我的故事 提交于 2019-12-04 06:20:06
使用母页和子页配合展示内容;母页和子页都有自己的activity。 母页是含有frameLayout控件的页面。子页通过配置,在frameLayout控件中显示;frameLayout本身没有任何内容。 ------------------------------------------------------------------------------------------------------------------------------------------------------------- 母页内容(test_activity_fragment.xml) <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/fragmentContainer" > </FrameLayout> 在母页的activity中对FrameLayout控件配置子页。子页就是标准的Android XML File。 如何对FrameLayout控件配置子页 FragmentManager对象

Intent 跳转 Activity 用法

自古美人都是妖i 提交于 2019-12-04 06:13:10
1 一、不同应用中的 Activity 传递 2 Intent tIntent=new Intent(); 3 ComponentName tComponentName=new ComponentName("com.oradt.ecard.globalsearch", "com.oradt.ecard.globalsearch.GlobalActivity"); 4 tIntent.setComponent(tComponentName); 5 tIntent.setAction("android.intent.action.MAIN"); 6 tIntent.putExtra("id", mTimeRing.getId()); 7 mContext.startActivity(tIntent); 8 1.注解: 9 10 1.com.oradt.ecard.globalsearch 是要跳转应用的包名,即 AndroidManifest.xml 中的 package 11 12 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 13 package="com.oradt.ecard.globalsearch" 14 15 2.com.oradt.ecard.globalsearch

Activity、Window、View三者关系

空扰寡人 提交于 2019-12-04 05:22:21
目录介绍 01.Window,View,子Window 02.什么是Activity 03.什么是Window 04.什么是DecorView 05.什么是View 06.关系结构图 07.Window创建过程 08.创建机制分析 8.1 Activity实例的创建 8.2 Activity中Window的创建 8.3 DecorView的创建 弹窗系列博客 01.Activity、Window、View三者关系 深入分析Activity、Window、View三者之间的关系 02.Toast源码深度分析 最简单的创建,简单改造避免重复创建,show()方法源码分析,scheduleTimeoutLocked吐司如何自动销毁的,TN类中的消息机制是如何执行的,普通应用的Toast显示数量是有限制的,用代码解释为何Activity销毁后Toast仍会显示,Toast偶尔报错Unable to add window是如何产生的,Toast运行在子线程问题,Toast如何添加系统窗口的权限等等 03.DialogFragment源码分析 最简单的使用方法,onCreate( @Nullable Bundle savedInstanceState)源码分析,重点分析弹窗展示和销毁源码,使用中show()方法遇到的IllegalStateException分析 04.Dialog源码分析

工作小结,简单的主页框架,可左右滑动,viewpage+fragment,

孤街醉人 提交于 2019-12-04 04:39:24
一款安卓应用,好歹也是一个系统啊,既然称得上是系统,就要考虑系统的稳定性,功能模块的耦合性,复用程度等等,所以一个好的开发模型必然达到事半功倍的效果。 目前(2015年11月),常见的手机应用基本上是登录之后是一个主页,首页里面嵌套着多个fragment或者view,fragment会采用缓存策略,点击里面的控件,例如按钮,图片,会弹出一个新的activity,负责给用户提供特定的服务。最为关键的是主页,主页显示的内容通常是比较全面的,数据很多,例如微信的主页,下面是4个tab(微信,通讯录,发现,我),每点击一个tab,tab上面内容都会切换到对应的Fragment或者view里面。无论它们怎么切换,都在同一个activity里面,这个activity就是主activity,我习惯的命名是MainAcitivity。除了MainActivity,其他新建的Activity,一般用户要求是有统一标题栏风格,这个时候就要考虑写一个activity的基类BaseActivity。然后所有的Activity都是这个基类的子类,如果后期需要修改风格(比如切换皮肤什么的)只要修改基类就可以了。 BaseActivity基类,负责处理窗口切换的动画效果,手势,图片资源回收等,是对activity的第一层封装 package com.example.activitymode; import

Android Activity的生命周期详解

蓝咒 提交于 2019-12-04 04:31:30
Activity是由Activity栈进管理,当来到一个新的Activity后,此Activity将被加入到Activity栈顶,之前的Activity位于此Activity底部。Acitivity一般意义上有四种状态: 1.当Activity位于栈顶时,此时正好处于屏幕最前方,此时处于 运行状态 ; 2.当Activity失去了焦点但仍然对用于可见(如栈顶的Activity是透明的或者栈顶Activity并不是铺满整个手机屏幕),此时处于 暂停状态 ; 3.当Activity被其他Activity完全遮挡,此时此Activity对用户不可见,此时处于 停止状态 ; 4.当Activity由于人为或系统原因(如低内存等)被销毁,此时处于 销毁状态 ; 在每个不同的状态阶段,Adnroid系统对Activity内相应的方法进行了回调。因此,我们在程序中写Activity时,一般都是继承Activity类并重写相应的回调方法。 在上图中,Activity有三个关键的循环: 1.Activity实例是由系统自动创建,并在不同的状态期间回调相应的方法。 Activity在onCreate()设置所有的“全局”状态,在onDestory()释放所有的资源。 一个最简单的完整的Activity生命周期会按照如下顺序回调:onCreate -> onStart -> onResume ->