intent

Android四大组件之广播

烂漫一生 提交于 2020-03-15 20:54:59
广播接收者(Broadcast Receiver)有两种:普通广播(Normal Broadcast)和有序广播(Ordered Broadcast) 1,普通广播 Context.sendBroadcast( new Intent() ); 完全异步,可以在同一时刻被所有接收者接收到,消息传播的效率比较高; 缺点是接收者不能将处理结果传递给下一个接收者,并且无法终止广播Intent的传播; 2,有序广播 Context.sendOrderedBroadcast( new Intent() ); 按照接收者的优先级别(声明在intent-filter元素的android:priority属性中,数越大优先级越高,取值范围-100~100;也可以调用IntentFilter对象的setPriority()进行设置),被接受者依次接收广播。 前面的接收者有权终止广播(BroadcastReceiver.abortBroadcast()),如果广播被前面的接收者终止,后面的接收者就无法获取到广播; 前面的接收者可以将处理结果通过setResultExtras(Bundle)方法存放进结果对象,然后传给下一个接收者,通过Bundle bundle =getResultExtras(true))可以获取上一个接收者存入在结果对象中的数据。 生命周期: 一个广播处理完onReceive(

Android笔记五-intent

吃可爱长大的小学妹 提交于 2020-03-13 23:48:20
intent最主要的特点是它是一个用户概念。像所有其它ANDROID概念一样,不能从系统的角度去理解它。应该从用户的角度去理解它。意思是,当我们要解释某一个东西的时候,不是说,这个在系统中的功能是......而是说,这个是......换句话说,既然是Android,自然要说“人”话。 intent另一个特点是它的内涵:意图,意欲。意思是,它所表达的全部就只是一个“我想要...(什么)”这样的概念。可以用消息来解释它的存在,说:哦!我明白了,它就是消息嘛!但是这样说是不对的,因为这不是ANDROID的认识观。ANDROID的认识观是一种用户角度的认识观。意思是,你将要写的每一个东西,它不从属于系统,它从属于用户。因为ANDROID是一个真正的用户的系统,而不是程序员的系统。 或者说,ANDROID对其所有系统功能进行包装以后,暴露出来的就是一个纯粹的用户化语义环境。你甚至不需要去考虑面向对象这样的东西,因为ANDROID已经帮你考虑全了。或者说,你需要考虑的,就只剩下你自己的应用,并且在这个过程中,使用的也全部是你自己的语言(人话),而不是机器或所谓“系统”的语言。这意味着你无须频繁地在系统级与用户级语义间跳转说辞,你只需简单地把你的需求或想法“说”出来。并且再进一步,如果需要的话,把它介绍给别人。并且,在整个过程中,你使用的一直都是“人话”。 众所周知

Activity之间参数传递

假如想象 提交于 2020-03-12 12:17:32
1、第一种,简单传递。 发送: switch (v.getId()) { case R.id.btn1: EditText editText = findViewById(R.id.editText); Intent intent = new Intent(this, my1Activity.class); intent.putExtra("data", editText.getText().toString()); startActivity(intent); break; 接收: Intent intent=getIntent(); String str1 = intent.getStringExtra("data"); TextView textView=findViewById(R.id.textView3); textView.setText(str1); 2、第二种:使用bundle. 外汇MT4教程 发送: Bundle bundle=new Bundle(); bundle.putString("data1",editText.getText().toString()+editText.getText().toString()); intent.putExtras(bundle); startActivity(intent); 接收: Bundle bundle

安卓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

NFC高级

送分小仙女□ 提交于 2020-03-10 18:14:36
高级 NFC 本文档介绍了高级的NFC主题,如各种标签技术,NFC标签写入和前台发布,它允许即使当其他应用程序过滤器相同的时候,应用程序在前台处理Intent。 Tag技术支持工作 当使NFC Tag和Android的供电设备生效,使用Tag来读取和写入数据的主要格式是NDEF,当设备扫描NDEF数据的Tag,Android提供支持解析的消息,并在可能的情况下将它传入一个 NdefMessage ,但是,在有些情况下,当你扫描不包含NDEF数据的Tag或当NDEF数据时无法映射到MIME类型或URI时。在那样的情况下,你需要直接与Tag建立沟通及用自己的协议(在原始字节)读写它,Android用android.nfc.tech包对那些情况提供了通用的支持,如表1中所描述的。您可以使用getTechList()方法来确定技术支持Tag,并且用由android.nfc.tech提供的类的其中一个创建相应 TagTechnology 对象. 表 1. 支持的Tag技术 类 描述 TagTechnology 这个接口是下面所有 tag technology 类必须实现的。 NfcA 提供访问 NFC-A (ISO 14443-3A) 的属性和 I/O 操作 NfcB 提供访问 NFC-B (ISO 14443-3B) 的属性和 I/O 操作 NfcF 提供访问 NFC-F (JIS

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学习笔记之Started Service

混江龙づ霸主 提交于 2020-03-10 04:00:09
Started Service就是启动之后可以在后台无限期的运行,比如通过Activity组件的startService方法启动之后,如果不用指定方法关闭,这个Service就会一直运行。 下面说一下怎么来实现这种Service: (在主界面设置两个按钮,来实现启动和停止Service,当启动Service后,在后台打印从0开始的数据的累加日志,以便我们观察) 布局,不说了,上图 在File->new->Service->Service中新建一个Service,并重写里面的方法,一般来说要实现onCreate()、onBind()、onStartCommand()和onDestroy()这四个方法。 public class MyService extends Service { public MyService ( ) { } @Override public IBinder onBind ( Intent intent ) { // TODO: Return the communication channel to the service. throw new UnsupportedOperationException ( "Not yet implemented" ) ; } //Service创建时调用 @Override public void onCreate ( )

android、获取本地图片|直接获取照相图片

北城余情 提交于 2020-03-09 10:49:13
在此调查中我要实现的是:点击Pictures按钮后,获取手机内所有图片,选择某一个图片,并显示到ImageView中。 应用范围: 图片上传时的图片选择 , 类似"浏览"。 所有的图片都会列出来,包括目录。 在Activity Action里面有一个“ACTION_GET_CONTENT”字符串常量,该常量让用户选择特定类型的数据,并返回该数据的URI.我们利用该常量,然后设置类型为“image/*”,就可获得 Android 手机内的所有image。 view plain <span style= "font-size:18px;" > public class Lesson_01_Pic extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.main); Button button = (Button)findViewById(R.id.b01); button.setText( "选择图片" ); button.setOnClickListener(

Android 通过调用系统,如接口 谷歌语音、百度语音、科大讯飞语音等语音识别方法对话框

旧巷老猫 提交于 2020-03-09 06:51:59
现在app在发展过程中会集成一些语音识别功能,不具有其自己的显影剂一般正在开发的语音识别引擎,所以在大多数情况下,它是选择一个成熟的语音识别引擎SDK集成到他们的app在。 平时,这种整合被分成两个,一种是直接调用SDK开发商设计了弹出框。互界面;另一种是开发人员仅仅利用SDK提供的语音识别服务,自己开发一个属于自己的交互设计。 本文介绍最简单直接调起弹出框的方法。 首先。測试机须要安装如谷歌语音、百度语音、讯飞语音等产品的语音软件,这时能够在系统设置界面的语言与输入处找到相关的语音识别功能列表。然后就能够直接调用了。 以下是调用的步骤: 首先:在Activity中实例一个intent。intent的action设置为RecognizerIntent.ACTION_RECOGNIZE_SPEECH或者RecognizerIntent.ACTION_WEB_SEARCH,关于RecognizerIntent能够查看本博客之前的文章,然后调用一个带返回结果的操作 <pre name="code" class="java">@Override public void onClick(View v) { Intent intent=new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); //Intent intent=new Intent

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