`
百合不是茶
  • 浏览: 354630 次
社区版块
存档分类
最新评论

android意图和意图监听器技术

阅读更多

Intent是在activity之间传递数据;Intent的传递分为显示传递和隐式传递

 

显式意图:调用Intent.setComponent() 或 Intent.setClassName() 或 Intent.setClass()方法明确指定了组件名的Intent为显式意图,显式意图明确指定了Intent应该传递给哪个组件。

 

隐式意图;不指明调用的名称,根据设置的action,data,category,Android系统会根据这三个特征找到最合适的组件并激活

 

  显示意图;

 

1,界面意图的创建与启动  (调用系统的打电话的函数   ,str是需要获取的号码)

                 Intent intent =new Intent();//创建意图对象
		intent.setAction(Intent.ACTION_CALL);//设置系统动作
		intent.setData(Uri.parse("tel:"+str));//设置数据的来源
		startActivity(intent);//启动意图

 

 

 

2,界面之间的数据传递;

   

  //传递数据

 

//界面之间的跳转信息的传递
Intent intent = new Intent();
//将ip和端口传递到功能界面
intent.putExtra("ips", ips);
  intent.putExtra("ports", ports);
intent.setClass(MainActivity.this, LightUI.class);//将获取到的数据传递到LighUI类中来获取
startActivity(intent);

    

 

//获取传递的数据

 

// 获得intent的iP和ports
		Intent intent = getIntent();//创建获取显示意图的对象
		String ip = intent.getStringExtra("ips"); //获取数据
		String ports = intent.getStringExtra("ports");

 

 

 

3,使用包管理器启动意图

 

//使用包管理器测试
		Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+str));
       //包管理器
		PackageManager pm=this.getPackageManager();
		//判断是否存在
       ComponentName cm=intent.resolveActivity(pm);
       if(cm!=null){
    	   this.startActivity(intent);
       }else{
    	  Toast.makeText(this, "请安装应用程序..", Toast.LENGTH_SHORT).show(); 
       }	

 

 

 

 

隐式意图

    

  实现多个数据的返回;

onActivityResult() 方法

   

//监听器
	public void onchange(View v){
		//带返回值的意图
        Intent intent =new Intent();
        intent.setClass(this, SecondActivity.class);
        //使用带返回值的方法启动意图
        this.startActivityForResult(intent, REQUEST_CODE);
	}
	
	//接收意图的返回值
	/**requestCode请求码
	 * resultCode结果码
	 * data获取到的数据
	 * 
	 */
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		super.onActivityResult(requestCode, resultCode, data);
		if(requestCode==REQUEST_CODE&&resultCode==RESULT_CODE){
			//获取SecondActivity界面传递的值 
			String num=data.getStringExtra("num");
			text.setText(num);
		}
		
	}

  

 

返回数据的activity页面 

  

	//添加按钮的监听器
	public void chan(View v){
		String num="10086";
		// 包装要返回的数据
		Intent intent = new Intent();
		intent.putExtra("num", num);
		this.setResult(MainActivity.RESULT_CODE,intent);
		this.finish();
	}

 

 

 

 

自定义意图监听器

intent.setAction(Intent.ACTION_CALL);//设置系统动作

intent.setData(Uri.parse(tel:str));    tel:可以拨打电话的原因; 

 

系统在创建意图时,配置了意图监听器;我们自己也可以实现意图监听器 ;例子如下;

 

意图监听器的配置xml页面; 

 

 <activity 
            android:name=".SecondActivity"> 将SecondActivity自定义意图监听器
            <intent-filter>
                <action android:name="com.newer.baihe"/>  action的名字
                
               <category android:name="android.intent.category.DEFAULT" />系统默认的类别,必须要写
          自定义三个类别,可以直接访问其中的一个
               <category android:name="com.baihe.aaa" /> 
               <category android:name="com.baihe.bbb" />
               <category android:name="com.baihe.ccc" />
                  
          
               <data 
                 数据的访问协议
                   android:scheme="baihe"  相当于 tel:
                   android:host="baidu.com"   主机
                   android:path="/index.html" 路径
                   android:mimeType="text/*" 匹配多个
                   />
            </intent-filter>
            </activity> 

 

 

java代码访问上面自定义的意图监听器

 

// 带返回值的意图
		Intent intent = new Intent();
		intent.setAction("com.newer.baihe");// 访问自定义的action
		intent.addCategory("com.baihe.aaa");// 访问类别
		intent.setDataAndType(Uri.parse("baihe://baidu.com/index.html"),
				"text/html");// 访问页面
		startActivity(intent);// 启动意图

 

 

 

 

   

 

 

1
4
分享到:
评论

相关推荐

    Android学习笔记(十八)——使用意图筛选器和实现浏览网页(附源码)

    同时,可以通过WebViewClient和WebChromeClient来监听页面加载进度,实现加载指示器,或者自定义JavaScript交互以增强功能。 总结,这篇学习笔记详细介绍了如何在Android应用中使用意图筛选器来处理隐式Intent,...

    java android 文件监听器

    在本文中,我们将深入探讨如何在Android中创建一个文件监听器,并探讨相关技术细节。 首先,由于Android系统基于Linux内核,它支持文件系统事件通知机制,例如Inotify。然而,Android API并没有直接提供针对文件...

    【Android开发API】应用的组成部分-意图和意图过滤器.pdf

    【Android开发API】应用的组成部分-意图和意图过滤器 在Android开发中,意图(Intent)是连接应用程序组件的重要桥梁,它允许组件之间进行通信和交互。Android的三个核心组件——活动(Activity)、服务(Service)和广播...

    Android广播接实现监听电话状态(电话的状态,拦截)

    基于监听的事件处理机制涉及三个核心对象:事件源(EventSource)、事件(Event)和事件监听器(EventListener)。事件源是产生事件的对象,事件是具体发生的事情,而事件监听器则是用于接收和响应事件的对象。 在...

    android 监听拨号键

    这是Android系统提供的一种机制,使得应用可以在不需要运行的情况下接收并响应系统或其它应用发送的广播意图(Intent)。拨号事件就是一种广播,当用户按下拨号键时,系统会发出一个ACTION_DIAL广播。 要监听拨号键...

    Android 电话及短信的监听程序源码.rar

    在Android平台上,开发一个能够监听电话和短信的应用程序涉及到多个核心组件和技术。这份"Android电话及短信的监听程序源码"提供了一个学习和参考的实例,让我们深入探讨这些关键知识点。 1. **权限管理**: 在...

    详解Android短信的发送和广播接收实现短信的监听

    总结来说,实现Android短信的发送和接收功能,需要合理配置清单文件权限、正确注册和实现广播接收器,以及设计用户友好的发送界面,并且在适当时刻处理运行时权限。这些知识点的掌握对于开发能够处理短信收发功能的...

    Android版本更新 OKhttp 适配7.0监听下载进度

    使用`Intent.ACTION_VIEW`和`Intent.setDataAndType()`设置安装意图,并添加`FLAG_GRANT_READ_URI_PERMISSION`以允许安装器访问下载的文件。 6. **权限配置**: 在AndroidManifest.xml中,别忘了声明所需的权限,如`...

    IntentMonitor:基于工具的 xposed 可以监控 android 意图

    IntentMonitor 通过在关键函数上设置钩子(hook),比如 `startActivity`, `sendBroadcast`, `startService`,来捕捉并记录 Android 应用程序中发送和接收意图的行为。 在 Android 系统中,Intent 是一种消息传递...

    Android应用源码之3G和wifi的切换监听-IT计算机-毕业设计.zip

    在Android应用开发中,理解和掌握网络状态监听是至关重要的,特别是在设计涉及网络通信的应用时。这份"Android应用源码之3G和WiFi的切换监听"的毕业设计项目,旨在教授开发者如何在Android平台上监听和处理网络连接...

    android 媒体键监听 以及 媒体键模拟

    在Android开发中,媒体键监听和模拟媒体键盘的实现是两个重要的功能,它们涉及到系统级事件处理和自定义用户交互。下面将详细讲解这两个概念及其实现。 首先,媒体键监听是指应用程序能够捕获并响应系统中的媒体键...

    android 自定义时间日期选择器

    总之,`android 自定义时间日期选择器`是Android开发中实现个性化交互的一个典型示例,它涉及到了Android UI设计、事件处理、数据管理等多个方面的技术。通过研究和学习这个源码,开发者可以提升自己在Android自定义...

    android 监听来电和去电

    在Android开发中,监听来电和去电是许多应用程序的核心功能之一,尤其是在通讯应用、日志记录或企业级安全软件中。根据给定的文件信息,我们可以深入探讨如何在Android中实现这一功能,包括必要的权限设置、广播接收...

    android创意程序,语音控制器源代码

    总的来说,这个“android创意程序,语音控制器源代码”是一个结合了Android语音识别技术、自然语言处理和事件处理机制的综合性项目,对于想要深入学习Android开发,特别是增强应用交互性的开发者来说,是一个很好的...

    android电话拔号器

    在Android平台上,开发一个电话拨号器涉及到许多关键知识点,包括Android应用开发基础、权限管理、用户界面设计、电话管理API以及意图(Intent)机制。下面将详细解释这些概念。 首先,Android应用开发基础是所有...

    Android中动态注册广播监听者,监听网络变化

    在Android系统中,广播接收器(BroadcastReceiver)是一种重要的组件,它允许应用程序对系统或其它应用发出的广播事件进行响应。动态注册广播监听者是相对于静态注册的一种方式,主要优势在于能够在运行时注册,便于...

    Android广播onReceiver回调更新ui

    在Android系统中,广播接收器(BroadcastReceiver)是一种非常重要的组件,它允许应用程序接收并响应系统或应用广播的意图(Intent)。"Android广播onReceiver回调更新ui"这个主题主要涉及如何在广播接收器中处理...

    Android技术面试整理附有详细答案

    ### Android技术面试整理知识点 #### 1. Android的四大组件及其作用 - **Activity**:作为用户界面的主要组成部分,Activity负责展示UI并处理用户输入。每个Activity代表一个屏幕,可以包含多个视图(View),用于...

    android 实时监听读取微信最新消息

    在Android平台上,实现“实时监听并读取微信最新消息”的功能涉及到多个技术层面,包括权限获取、微信API的调用(如果可能的话)、系统广播监听以及数据解析等。以下是对这个主题的详细解释: 首先,要实现这个功能...

    android实时监听网络变化

    本篇将详细介绍如何利用Android的BroadcastReceiver(广播接收器)来实现这一功能,主要关注与“android 广播 监听 网络变化 wifi”相关的知识点。 首先,我们要理解BroadcastReceiver的工作原理。...

Global site tag (gtag.js) - Google Analytics