Android - 使用Intent来启动Activity
本文地址: http://blog.csdn.net/caroline_wendy/article/details/21455141
Intent 的用途是 绑定 应用程序组件, 并在应用程序之间进行 通信 ;
startActivity() , 传递 Intent 参数, 创建并显示一个Activity;
使用 Intent解析(resolution) 动态的选择最匹配的Activity.
显示启动Activity:
创建一个Intent, 指定当前的 语境(context) 和 Activity类(class) , 然后传递给startActivity()进行创建;
简易说明:
Intent intent = new Intent (MyActivity.this, MyOtherActivity.class);
startActivity(intent);
隐式启动Activity:
可以让匿名的应用程序组件响应动作请求, 如Intent传递一个 拨号动作(ACTION_DIAL) , 和 电话号码(URI) ;
注: URI , Uniform Resource Identifier, 通用资源标示符;
Android将在运行时把 Intent解析 为最合适在指定数据类型上执行所需动作的类;
如果有多个Activity都能够执行该动作, 则会向用户提供 多重选项 , 如访问URL, 会提示选择浏览器;
使用 resolveActivity() 方法, 可以判断, Android 是否 可以解析Intent;
代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //把布局填充到用户界面 Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:13800001111")); PackageManager pm = getPackageManager();
ComponentName cn = intent.resolveActivity(pm); if (cn == null) {
Uri marketUri = Uri.parse("market://search?q=pname:com.myapp.packagename");
Intent marketIntent = new Intent(Intent.ACTION_VIEW).setData(marketUri); if (marketIntent.resolveActivity(pm) != null)
startActivity(marketIntent);
else
Log.d(TAG, "Market client not available");
} else
startActivity(intent);
}
简单的HelloWorld程序, 添加 Intent隐式启动Activity , 可以 运行 ;
Android - 使用Intent来启动Activity的更多相关文章
- android 25 跨进程启动activity
跨进程启动activity,启动系统预定义的activity就是跨进程的. client项目启动server项目的activity. clientActivity.java package com.s ...
- Android应用程序内部启动Activity过程(startActivity)的源代码分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6703247 上文介绍了Android应用程序的 ...
- [Android UI] Service里面启动Activity和Alertdialog
启动Activity源码:(记得要加上Intent.FLAG_ACTIVITY_NEW_TASK) Intent intent = new Intent(); intent.setFlags(Inte ...
- 我的Android进阶之旅------>启动Activity的标准Action和标准Category
Android内部提供了大量标准的Action和Category常量. 除了参考本文外,您还可以参考了以下链接: http://developer.android.com/reference/andr ...
- Android用Intent来启动Service报“java.lang.IllegalArgumentException: Service Intent must be explicit”错误的解决方法
今天没事来写个播放器,照搬书上的原句,其中一句 //用于启动和停止service的Intent final Intent it = new Intent("android.mu.action ...
- context.startActivity(Intent intent)方法启动activity
在一个Activity环境中用该方法启动一个一个activity不会出任何问题,但在activity之外的其他组件中使用该方法就会出现以下错误: Calling startActivity() fro ...
- Android 在Service里面启动Activity
直接在代码: Intent dialogIntent = new Intent(getBaseContext(), YourActivity.class); dialogIntent.addFlags ...
- [转]android笔记--Intent和IntentFilter详解
Intent用于启动Activity, Service, 以及BroadcastReceiver三种组件, 同时还是组件之间通信的重要媒介. 使用Intent启动组件的优势1, Intent为组件的启 ...
- Android: Intent实现活动之间的交互
Intent的作用:是Android中各个组件直接交互的一种重要方式,且利用Intent可以启动Activity.Service以及Broadcast Receiver. Intent的创建:显示和隐 ...
随机推荐
- linux下修改防火墙端口对外开放方法
---linix CentOS7的防火墙换成了firewall了,这里做一些记录,下面是一些命令:添加例外端口:# firewall-cmd --add-port=8080/tcp删除例外端口:# f ...
- LinkedList的分析(转)
一.源码解析 1. LinkedList类定义. public class LinkedList<E> extends AbstractSequentialList<E> im ...
- [Python学习笔记][第六章Python面向对象程序设计]
1月29日学习内容 Python面向对象程序设计 类的定义与使用 类定义语法 使用class关键词 class Car: def infor(self): print("This is ca ...
- 前端--关于javascript对象
在javascript中对象是一种基本的数据类型,在数据结构上是一种散列表,可以看作是属性的无序集合,除了原始值其他一切都是对象.它可以用来表示现实世界中或者我们大脑中抽象出来的客体,这和其他面向对象 ...
- javascript 阻止多次点击造成的轮播混乱
function nextSlider(){ //使用b作为开关,只有动画完成后才能进行下一次运动 if(b){ //如果b为真,则马上设置b为false,如果startmove的回调没有重新设置b的 ...
- HttpWebRequest上传文件(Excel等)
//上传代码/// <summary> /// 文件上传 /// </summary> /// <param name="strAddress"> ...
- javascript操作json总结
原文:http://www.cnblogs.com/worfdream/articles/1956449.html JSON(JavaScript Object Notation) 是一种轻量级的数据 ...
- c#程序为PDF文件填写表单内容
众所周知,PDF文件一般情况下是无法修改的,如果你有一张现成的PDF表格,这时想通过编程实现从数据库或者动态生成内容去填写这张表格,就会有些问题了,首先我们要解决以下2个重要的问题: 1.如何将内容写 ...
- POJ2533:Longest Ordered Subsequence(LIS)
Description A numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let the subsequence ...
- vi打开二进制文件
vi -b filename <c7><cc>><0b><00><00><01><01><c2>& ...