06_Intent和IntentFilter
Intent是同一个或不同的应用中的组件之间的消息传递的媒介,是一个将要执行动作的抽象描述,一般来说是作为参数来使用。
Intent描述要启动的基本组件;
IntentFilter对组件进行过滤。
下面的代码通过Intent,具有打开Activity、打开图片、拨打10086和打开网页的功能。
package com.example.intentdemo; import java.io.File; import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle; public class MainActivity extends ActionBarActivity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); findViewById(R.id.btnStartAty1).setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View v) { //显式Intent
//Intent i = new Intent();
//i.setComponent(new ComponentName("com.example.intentdemo", "com.example.intentdemo.Aty1")); //通过一个action来启动,由操作系统来启动
//隐式Intent
Intent i = new Intent("com.example.intentdemo.intent.action.Ayt1");
startActivity(i); } }); findViewById(R.id.btnOpenImage).setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View v) {
File f = new File("/storage/emulated/0/Pictures/Screenshots/Screenshot_2014-08-30-08-08-10.png");
Intent i = new Intent(Intent.ACTION_VIEW);
i.setDataAndType(Uri.fromFile(f), "image/*");
startActivity(i); }
}); findViewById(R.id.btnDel10086).setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View v) {
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse("tel:10086"));
startActivity(i);
}
}); findViewById(R.id.btnOpenBaidu).setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View v) {
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.baidu.com"));
startActivity(i);
}
});
} }
Manifest文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.intentdemo"
android:versionCode="1"
android:versionName="1.0" > <uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19" /> <application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.intentdemo.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity><activity android:name="Aty1">
<intent-filter>
<category android:name="android.intent.category.DEFAULT" /><action android:name="com.example.intentdemo.intent.action.Ayt1" /> </intent-filter>
</activity> <activity android:name="ImageViewer"> <intent-filter > <action android:name="android.intent.action.view"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="image/*" android:scheme="file"/> </intent-filter> </activity>
</application> </manifest>
06_Intent和IntentFilter的更多相关文章
- Intent和IntentFilter详解
Intent用于启动Activity,Service, 以及BroadcastReceiver三种组件, 同时还是组件之间通信的重要媒介. 使用Intent启动组件的优势1, Intent为组件的启动 ...
- [转]android笔记--Intent和IntentFilter详解
Intent用于启动Activity, Service, 以及BroadcastReceiver三种组件, 同时还是组件之间通信的重要媒介. 使用Intent启动组件的优势1, Intent为组件的启 ...
- (备忘)android清单文件中<meta-data>标签,以及<intent-filter>下的<data>标签及其他标签
1.metadata可以写在application下也可以写在activity下,作为全局或activity内共享的数据 以键值对形式保存 <meta-data android:name=&qu ...
- android-Intent and IntentFilter
一.Intent简介 Android使用Intent来封装程序的调用"意图",Activity.Service.BroadcastReceiver三种重要的组件都是依靠Intent ...
- android IntentFilter 使用之 data过滤
1 Intent分为两大类,显式和隐式. 显式事件,就是指通过 component Name 属性,明确指定了目标组件的事件. 比如我们新建一个Intent,指名道姓的说,此事件用于启动名为" ...
- Android,配置Activity为启动Activity(AndroidManifest.xml,application,intent-filter,MAIN,LAUNCHER)
备忘: 将Activity注册为启动Activity. 在AndroidManifest.xml中的<application>元素中加入以下<activity>子元素内容: & ...
- [Xamarin] 透過 intent-filter 來接管 http ,製作偽瀏覽器 (转帖)
使用Android 的朋友一定對這畫面不陌生在開啟網址的時候,或是Youtube連結的時候,因為Android 發現,你手機安裝的App有哪些可以支援這些東西的瀏覽 所以,就可以使用甚麼東西來進行開啟 ...
- 关于IntentFilter的几点注意事项:
http://blog.csdn.net/cnnumen/article/details/8464786 IntentFilter就是用于描述intent的各种属性, 比如action, catego ...
- Intent官方教程(5)在manifest中给组件添加<Intent-filter>
Receiving an Implicit Intent To advertise which implicit intents your app can receive, declare one o ...
随机推荐
- 企业级docker-registry原生镜像仓库高可用部署
简介: 私有镜像仓库可以方便企业,或个人开发者共享内部镜像而不会泄漏私有代码,而且可以加速镜像的拉取.能更加方便得集成到容器化的 CI/CD 中去.也可建立自己的公共镜像仓库. 优势: Docker ...
- Vue、Node全栈项目~面向小白的博客系统~
个人博客系统 前言 ❝ 代码质量问题轻点喷(去年才学的前端),有啥建议欢迎联系我,联系方式见最下方,感谢! 页面有啥bug也可以反馈给我,感谢! 这是一套包含前后端代码的个人博客系统,欢迎各位提出建议 ...
- Jmeter 用户定义的变量的使用
第一步: 打开Jmeter软件,新建一个线程组,添加 > 配置元素 > 用户定义的变量 第二步: 设置值,如下图所示: 第三步,使用设置的名称 :
- Dapr Golang HTTP 调用
Dapr Golang HTTP 调用 版本介绍 Go 版本:1.15 Dapr Go SKD 版本:0.11.1 工程结构 从上图可知,新建 3 个 Go 启动项目,cmd 为启动项目目录,其中 c ...
- 解Bug之路-NAT引发的性能瓶颈
解Bug之路-NAT引发的性能瓶颈 笔者最近解决了一个非常曲折的问题,从抓包开始一路排查到不同内核版本间的细微差异,最后才完美解释了所有的现象.在这里将整个过程写成博文记录下来,希望能够对读者有所帮助 ...
- 力扣 - 146. LRU缓存机制
目录 题目 思路 代码 复杂度分析 题目 146. LRU缓存机制 思路 利用双链表和HashMap来解题 看到链表题目,我们可以使用头尾结点可以更好进行链表操作和边界判断等 还需要使用size变量来 ...
- Table is marked as crashed and should be repaired 解决办法
遇到这个问题几个敲命令轻松搞定 1.首先进入mysql命令台: mysql -u root -p 回车 输入密码 2.查询所有的库 mysql> show databases; 3.进入数据库 ...
- mybatis foreach collection
原文传递:https://blog.csdn.net/qq_24084925/article/details/53790287 foreach元素的属性主要有 item,index,collectio ...
- 1、线性DP 354. 俄罗斯套娃信封问题
354. 俄罗斯套娃信封问题 https://leetcode-cn.com/problems/russian-doll-envelopes/ 算法分析 首先我们从两种情况来讨论这个问题: w无重复值 ...
- vmlinux, Image ,zImage,uImage
kernel 源码编译生成 vmlinx,vmlinux 是 elf 文件,对 vmlinux 使用 objcopy 得到 Image,Image 是纯粹的二进制文件,vmlinux 只能在OS环境下 ...