activity

安卓activity之间进行数据传输

*爱你&永不变心* 提交于 2020-03-10 19:36:46
一:单个对象传输 (1)基本数据传输(String Int) Intent intent = new Intent ( this , NewActivity . class ) ; intent . putExtra ( "name" , "android" ) ; intent . putExtra ( "version" , 9 ) ; startActivity ( intent ) ; 在另外一个NewActivity.java的onCreate获取 protected void onCreate ( Bundle savedInstanceState ) { super . onCreate ( savedInstanceState ) ; setContentView ( R . layout . activity_new ) ; Intent intent = getIntent ( ) ; String name = intent . getStringExtra ( "name" ) ; int ver = intent . getIntExtra ( "version" , 0 ) ; Log . d ( TAG , " name =" + name + " version=" + ver ) ; } (2)Bundle集装箱数据传输 传递方: Intent

Android NFC近场通信2——NFC标签调度

拈花ヽ惹草 提交于 2020-03-10 18:14:01
  上面一篇文章简单介绍了NFC的背景和技术应用,今天主要是讲解一下NFC如何发起通信和标签通信(主要是翻译android官网的资料,中间加入个人心得)。 NFC总是在一个发起者和一个被动目标之间发生。发起者发出近场无线电波,这个近场可以给被动目标供电。这些被动的目标包括不需要电源的标签,卡,也可以是有电源的设备。拿我们手机来说,我们手机打开NFC功能后就是一个发起者,被动目标一般就是NFC标签。我们通过读取NFC标签内容,达到获取数据目的。    1、Tag发布系统   当android设备扫描到一个NFC tag,通用的行为是自动找最合适的Activity会处理这个tag Intent而不需要用户来选择哪个Activity来处理。因为设备扫描NFC tags是在很短的范围和时间,如果让用户选择的话,那就有可能需要移动设备,这样将会打断这个扫描过程。你应该开发你只处理需要处理的tags的Activity,以防止让用户选择使用哪个Activity来处理的情况。Android提供两个系统来帮助你正确的识别一个NFC tag是否是你的Activity想要处理的:Intent发布系统和前台Activity发布系统。 Intent发布系统检查所有Activities的intent filters,找出那些定义了可以处理此tag的Activity

Android_在Fragment获取activity实现的接口以及通过bundle传递自定义对象

拜拜、爱过 提交于 2020-03-09 17:37:37
要获取activity中实现的接口,可以在Fragment里重写onAttach方法,如下: public void onAttach(@NonNull Context context) { super.onAttach(context); if (context instanceof ShowItemAdapter.ShowDetail){ this.showDetail= (ShowItemAdapter.ShowDetail) context; }else { throw new RuntimeException(context.toString()+"havent impl interface"); } }   其中ShowDetail是context这个activity中实现的Show Item Adapter中的接口; 要将自己定义的Bean等对象在activity中传递,可以在这些对象类中实现 Parcelable 接口 或是 Serializable 接口 如下: public class ItemBean extends BmobObject implements Serializable { private String describe, tag, type, posi, username, bigtype,money; private String img,

app测试面试题

巧了我就是萌 提交于 2020-03-09 11:21:42
app测试面试题 前言 现在面试个测试岗位,都是要求全能的,web、接口、app啥都要会测,那么APP测试一般需要哪些技能呢? 面试app测试岗位会被问到哪些问题,怎样让面试管觉得你对APP测试很精通的样子? 本篇总结了app测试面试时候经常被问的10个相关问题 1.什么是activity? 2.Activity生命周期? 3.Android四大组件? 4.app测试和web测试有什么区别? 5.android和ios测试区别? 6.app出现ANR,是什么原因导致的? 7.App出现crash原因有哪些? 8.app对于不稳定偶然出现anr和crash时候你是怎么处理的? 9.app的日志如何抓取? 10.你平常会看日志吗, 一般会出现哪些异常(Exception)? 1.什么是activity 什么是activity,这个前两年出去面试APP测试岗位,估计问的最多了,特别是一些大厂,先问你是不是做过APP测试,那好,你说说什么是activity? 如果没看过android的开发原理,估计这个很难回答,要是第一个问题就被难住了,面试的信心也会失去一半了,士气大减。 Activity是Android的四大组件之一,也是平时我们用到最多的一个组件,可以用来显示View。 官方的说法是Activity一个应用程序的组件,它提供一个屏幕来与用户交互,以便做一些诸如打电话

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo异常解决

无人久伴 提交于 2020-03-09 07:43:49
不能实例化activity有如下三种情况: 1.没有在Manifest.xml 清单中注册该activity,或者在创建完activity后,修改了包名或者activity的类名,而配置清单中没有修改,造成不能实例化。 2.自己新建了一个包,而注册时候依然用的默认包,例如,默认包是com.ghg.Dao包,你新建了一个com.ghg.DaoImpl包,并在此包中写了个FirstActivity,在manifest.xml中注册时你写的是<activity android:name=".FirstActivity"/>,此时相当于你在的类注册到了默认包中,系统在默认包中是找不到的,因为你的FirstActivity在com.ghg.DaoImpl包下,所以你注册时应写成包名加类名,如:<activity android:name="com.ghg.DaoImpl.FirstActivity";这样系统才能在指定的包中找到对应的类。 3.还用一种就是你的FirstActivity定义成了抽象类,这种情况好像一般人不会犯。 如果上述三种情况都考虑到了,还会抛出此异常,那么就查看一下activity类里是否同时存在这个类的构造函数和oncreate(),如果是,那么删除构造函数试试,并把初始化放到 oncreate()中试试。 转自: http://blog.csdn.net

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo异常解决

笑着哭i 提交于 2020-03-09 07:43:01
不能实例化activity有如下三种情况: 1.没有在Manifest.xml 清单中注册该activity,或者在创建完activity后,修改了包名或者activity的类名,而配置清单中没有修改,造成不能实例化。 2.自己新建了一个包,而注册时候依然用的默认包,例如,默认包是com.ghg.Dao包,你新建了一个com.ghg.DaoImpl包,并在此包中写了个FirstActivity,在manifest.xml中注 册时你写的是<activity android:name=".FirstActivity"/>,此时相当于你在的类注册到了默认包中,系统在默认包中是找不到的,因为你的FirstActivity在com.ghg.DaoImpl包 下,所以你注册时应写成包名加类名,如:<activity android:name="com.ghg.DaoImpl.FirstActivity";这样系统才能在指定的包中找到对应的类。 3.还用一种就是你的FirstActivity定义成了抽象类,这种情况好像一般人不会犯。 如果上述三种情况都考虑到了,还会抛出此异常,那么就查看一下activity类里是否同时存在这个类的构造函数和oncreate(),如果是,那么删除构造函数试试,并把初始化放到 oncreate()中试试。 转http://blog.csdn.net

Android悬浮窗实现 使用WindowManager

我怕爱的太早我们不能终老 提交于 2020-03-09 06:15:34
本文转载自: http://blog.csdn.net/stevenhu_223/article/details/8504058 悬浮窗口的实现涉及到WindowManager(基于4.0源码分析),它是一个接口,实现类有WindowManagerImpl,CompatModeWrapper(WindowManagerImpl的内部类),LocalWindowManager(Window的内部类),它们之间的关系如下图的类图: WindowManagerImpl: 1.是WindowManager的实现类,windowmanager的大部分操作都在这里实现,但是并不会直接调用,而是作为LocalWindowManager和WindowManagerImpl.CompatModeWrapper的成员变量来使用。 2.在WindowManagerImpl中有3个数组View[],ViewRoot[],WindowManager.LayoutParams[],分别用来保存每个图层的数据。 3.WindowManagerImpl最重要的作用就是用来管理View,LayoutParams, 以及ViewRoot这三者的对应关系。 LocalWindowManager: 在源码的Activity类中,有一个重要的成员变量mWindow(它的实现类为PhoneWindow)

因子模块的activity中调用了setSupportActionBar(toolbar)而出现的actionbar与toolbar之间的错误

安稳与你 提交于 2020-03-08 21:21:35
因子模块是基础库不能改变,所以不能去子模块中的AndroidManifest.xml更改对应的Application标签的android:theme, 所以可以在主程序中重新声明该activity,如下所示,并加上 tools:replace=“android:theme” ,要不然会报错 <activity android:name="子模块中的activity" android:theme="@style/Theme.AppCompat.NoActionBar" tools:replace="android:theme" /> 来源: CSDN 作者: weixin_45137037 链接: https://blog.csdn.net/weixin_45137037/article/details/104737549

android内存优化-Activity, Thread引起的内存泄露0

假装没事ソ 提交于 2020-03-08 20:43:49
Android编程中一个共同的困难就是协调Activity的生命周期和长时间运行的任务(task),并且要避免可能的内存泄露。思考下面Activity的代码,在它启动的时候开启一个线程并循环执行任务。 1 /** 2 * 一个展示线程如何在配置变化中存活下来的例子(配置变化会导致创 3 * 建线程的Activity被销毁)。代码中的Activity泄露了,因为线程被实 4 * 例为一个匿名类实例,它隐式地持有外部Activity实例,因此阻止Activity 5 * 被回收。 6 */ 7 public class MainActivity extends Activity { 8 9 @Override 10 protected void onCreate(Bundle savedInstanceState) { 11 super.onCreate(savedInstanceState); 12 exampleOne(); 13 } 1415 private void exampleOne() { 16 new Thread() { 17 @Override 18 public void run() { 19 while (true) { 20 SystemClock.sleep(1000); 21 } 22 } 23 }.start(); 24 } 25 } 当配置发生变化

intent.putExtra()方法参数详解

倖福魔咒の 提交于 2020-03-08 17:10:56
【putExtra("A",B)中,AB为键值对,第一个参数为键名,第二个参数为键对应的值。顺便提一下,如果想取出Intent对象中的这些值,需要在你的另一个Activity中用getXXXXXExtra方法,注意需要使用对应类型的方法,参数为键名】 要不我举个例子吧,,大家注意注释的地方哈,源码在下面。 来建第一个Activity:MyIntent public class MyIntent extends Activity { /*声明控件对象*/ private EditText et1, et2; private Button bt; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); /*取得控件对象*/ et1 = (EditText) findViewById(R.id.et1); et2 = (EditText) findViewById(R.id.et2); bt = (Button) findViewById(R.id.bt); /*为按钮绑定监听器*/ bt