关于显示跳转和隐式跳转问题

问题描述

android支持两种跳转模式,一种比如:Intent eulaIntent = new Intent(this, xxx.class); 另一种比如:Intent intent = new Intent(Intent.ACTION_INSERT, getIntent().getData());虽然这两种都能用,但是我觉得第一种更简单,快速,但是看了很多官方的demo都是用第二种来实现跳转,通过匹配intent-filter<action android:name="android.intent.action.INSERT" /><category android:name="android.intent.category.DEFAULT" /><data android:mimeType="vnd.android.cursor.dir/xxxx" />我想知道第二种的适用环境和使用第二种的理由?有朋友愿意和我一起探讨吗?问题补充没有高人知道吗?问题补充yelinsen05 写道

解决方案

显示跳转: 在你知道这的某一个处理要由某一个Activity,或你想用某一个Activity来处理你的某一个任务时。如你有一个ListView,点某一项,要想显示这一项的详细信息,那这个可能就要你自己写一个Activity来显示了,那个跳到这个你自己的Acitivity你一般是用Intent eulaIntent = new Intent(this, xxx.class); 因为你知道这个Acitivy的名字。 而如果有一张图片,你想要显示这张图片,系统本身有图片浏览的程序,所以你只用调用这个程序就用以了,这个时候你不用知道这个程序是什么,只要通过Activity告诉系统你想要显示图片就可以了。而这就是隐式跳转。当然我不是不想说更多,而是怕说多了,把你弄混了。 你先理解一下,再看下去好了。在同一个程序中你也可以通过为一个Acitivy设置Action的方式,再通过Intent intent = new Intent(Intent.ACTION_INSERT, getIntent().getData()); 的方式让系统来使用调用这个Activity的。 当然你的Action不能和机器上已经有的程序的Action相同,不然就不能确保调用的这个Acitivity了。还有在程序A中调用程序B的Acitivity不能直接好Intent eulaIntent = new Intent(this, xxx.class); 因为xxx是不可见。要这样指定Activity你可以用intent.setClassName("com.android.email", "com.android.email.activity.Welcome");这样也可以指定Activity, com.android.email包名,com.android.email.activity.Welcome 类名,但是要注意try catch.不要再有人说我是去抄的了,上次我辛辛苦苦的给他慢慢讲解,他说你说的都是网上找的,对他没用。(不给分无所谓,也无需用如此卑鄙的手段嘛),有谁再说我是在网上找的我发誓再也不这么细心的回答问题了。谢谢。
解决方案二:
其实两种方式都一样,不存在好不好简不简单的问题。显示的跳转是指定跳转某一个Class,是在你知道的情况下发生的跳转。隐式的跳转一般用在跳转到系统的Activity上,比如说安装apk文件,打个电话之类的Activity,这些都和Intent这个组件有关,可以看看Intent这个组件的文档
解决方案三:
你能不能用第一种跳转方式实现两个APK之间activity的跳转列?分析下知道两种的区别了!
解决方案四:
gyht0808 写道android支持两种跳转模式,一种比如:Intent eulaIntent = new Intent(this, xxx.class); 另一种比如:Intent intent = new Intent(Intent.ACTION_INSERT, getIntent().getData());虽然这两种都能用,但是我觉得第一种更简单,快速,但是看了很多官方的demo都是用第二种来实现跳转,通过匹配intent-filter<action android:name="android.intent.action.INSERT" /><category android:name="android.intent.category.DEFAULT" /><data android:mimeType="vnd.android.cursor.dir/xxxx" />我想知道第二种的适用环境和使用第二种的理由?有朋友愿意和我一起探讨吗?第一种是在你自己的代码里面 你可以显示的指定activity的class, 第二种是你可以启动别的application, 比如你想在代码里面启动一个浏览器,或者调用系统的联系人。
解决方案五:
额,我也很想知道,等高人回答

时间: 2024-08-17 18:46:32

关于显示跳转和隐式跳转问题的相关文章

android中的显示跳转和隐式跳转

简介 android提供了三种菜单类型,分别为options menu,context menu,sub menu. options menu就是通过按home键来显示,context menu需要在view上按上2s后显示.这两种menu都有 可以加入子菜单,子菜单不能种不能嵌套子菜单.options menu最多只能在屏幕最下面显示6个菜单选项,称 为iconmenu,icon menu不能有checkable选项.多于6的菜单项会以more icon menu来调出,称为expanded

android--显式跳转和隐式跳转的区别用法

#创建第二个activity* 新创建的activity,必须在清单文件中做配置,否则系统找不到,在显示时会直接报错 <activity android:name="com.itheima.createactivity.SecondActivity"></activity>* 只要有以下代码,那么就是入口activity,就会生成快捷图标 <intent-filter>                <action android:name=&

android--显式跳转和隐式跳转

区别如下: 显式启动Activity指的是在Intent内部直接声明要启动的activity所对应的class. 隐式启动Activity的intent到底发给哪个activity,需要进行三个匹配,一个是action, 一个是category,一个是data,可以是全部或部分匹配,同样适用于Service和BroadcastReceiver. A:显式启动 下面用代码来解释什么是显式启动. [java] view plain copy    print? Intent intent=new I

android中选中菜单的显示跳转和隐式跳转的实例介绍

查了好多资料,现发还是不全,干脆自己整理吧,至少保证在我的做法正确的,以免误导读者,也是给自己做个记录吧! 简介 android供给了三种菜单类型,分别为options menu,context menu,sub menu. options menu就是通过按home键来表现,context menu需要在view上按上2s后表现.这两种menu都有可以参加子菜单,子菜单不能种不能嵌套子菜单.options menu最多只能在幕屏最下面表现6个菜单项选,称为iconmenu,icon menu不

Android 中 Activity显示隐式跳转

安卓中经常涉及到activity的跳转,跳转怎么样在安卓中实现呢,如下. 创建第二个activity就是创建一个class,继承自Android.app.Activity. 创建第二个activity的同时需要在清单文件中配置,不然会找不到 <activity android:name="com.ldw.createActivity.SecondActivity"></activity> 入口activity有下面的代码,只要activity有下面的代码,就会创

C# 接口的隐式与显示实现及适应场景_实用技巧

以前在用到接口时,从来没注意到接口分为隐式实现与显示实现.昨天在浏览博客时看到相关内容,现在根据自己的理解记录一下,方便日后碰到的时候温习温习. 通俗的来讲,"显示接口实现"就是使用接口名称作为方法名的前缀;而传统的实现方式称之为:"隐式接口实现".费话不说,例子如下: 复制代码 代码如下: interface IAnimal { void Dog(); } class Animal:IAnimal { public void Dog() { Console.Wri

Android Studio Intent隐式启动,发短信,拨号,打电话,访问网页等实例代码_Android

Android Studio Intent隐式启动,发短信,拨号,打电话,访问网页等实例代码 功能 创建5个按钮,隐式启动.发短信.拨号按钮.电话按钮.打开网页按钮.通过使用Intent来完成各自按钮下的功能 代码目录如下 详细代码如下: activity_main.xml代码如下 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://sc

【PL/SQL 学习】隐式游标学习

--oracle 会为每一个非显示游标的sql dml 语句都创建一个隐式游标,隐式游标也称为sql 游标.与显示游标不同,不能对一个隐式游标执行open,close和fetch语句.oracle 隐式的打开sql游标,处理sql游标,然后再关闭该游标. declare   vid t.object_id%type;   vowner t.owner%type;  begin    select object_id ,owner into vid,vowner from t where rown

第一行代码阅读笔记----显示隐式Intent的基本用法

1.显示Intent意图明显,通过Intent启动另外一个活动,这是安卓中各组件进行交互的一种重要方式.一般用于启动活动,启动服务,发送广播等场景. 实现方法,这里我只说思路,实践还是要自己实操才能明白: 1.首先多创建一个activity,命名为别的,这个就是待会咱们要调用的另外一个activity,可以跟主activity一样. 2.创建完后记得在AndroidManifest.xml中为新创建的activity进行注册. 同样的,要将其包括在<application分支下 ep: <ac