使用intent显示跳转

生活 2019-01-15 22:28:17 4329

本文收集整理关于使用intent显示跳转的相关议题,使用内容导航快速到达。

内容导航:

  • Q1:安卓程序中intent是怎么跳转的
  • Q2:android4.0.3 Intent跳转失败,显示“很抱歉,**已停止运行”,这是为什么
  • Q3:android如何通过intent实现三个activity跳转?
  • Q4:android怎么用intent跳转页面
  • Q5:android intent跳转怎样传输大数据
  • Q1:安卓程序中intent是怎么跳转的

    Intent分为显示和隐式Intent。

    创建显式Intent:

    一个显式Intent明确的指定了要启动的组件名称,比如Activity名称或者Service的名称。创建一个显式的Intent必须定义Component属性,其他的属性可选。下面的例子是创建一个Service在app中,名字叫DownloadService,功能是从网络上下载文件,你可以通过下面的代码来启动它:

    IntentmIntent=newIntent(this,MyActivity.class);

    downloadIntent.setData(mData);

    startService(mIntent);//跳转到指定Activity

    创建隐式Intent:

    一个隐式的Intent定义了将要执行的动作,任何在设备上的app都可以响应这个动作。用隐式Intent的非常的有用,当你的app不能处理某些请求动作时,但是系统中的其他应用有这个处理的能力,用户就能方便的利用其他应用完成这个操作。比如你用百度云盘下载了一个pdf文档,你在点击打开这个文档的时候百度云盘是无法打开的,但是也许你系统上安装有其他的能打开pdf文档的阅读器,这个时候就会弹出一个对话框,列举了可以打开pdf文档的应用程序,你可以自由选择一个应用程序打开你下载的文档。例如下面查看文档的例子:

    IntentsendIntent=newIntent();

    sendIntent.setAction(Intent.ACTION_SEND);

    sendIntent.putExtra(Intent.EXTRA_TEXT,textMessage);

    sendIntent.setType(HTTP.PLAIN_TEXT_TYPE);//"text/plain"MIMEtype

    if(sendIntent.resolveActivity(getPackageManager())!=null){

    startActivity(sendIntent);

    }

    Www..YiJItao.CoM

    Q2:android4.0.3 Intent跳转失败,显示“很抱歉,**已停止运行”,这是为什么

    test类是activity么

    Q3:android如何通过intent实现三个activity跳转?

    这个问题不难!Intent传递有大小限制,理论上是可以传对象Bitmap的,但是我也没成功过,都是通过先存在SD卡上,然后在BActivity上调用1、AActivity,保存图片到SD卡上,2、BActivity读取图片,显示图片。

    Q4:android怎么用intent跳转页面

    Android页面跳转Intent使用
    在android中,一个页面就是一个activity,在页面跳转中,用到了Intent这个类,其实Intent跳转没什么大不了的,就是调用几个方法,第一个:intent.setAction(“wang.zhe.gui.lai”);当然,里面的”wang.zhe.gui.lai”这个字符串是要在主配置文件中配置的,第二个:intent.setClass(MainActivity.this,SceondViewActivity.class);这个跳转方法是最常用的一种,这两种方法之后,用startActivity(intent);来启动跳转。不过这不是我说的重点,我所要说的是如何传值?一般对于字符串的传值,就是调用intent.putExtra("str",”字符串内容”);来传值,但是要是传一个对象呢?在intent中提供了一个方法,也是 putExtra(),不过,这个是传对象的方法putExtra(String name, Serializable value),是可以传对象的,不过对应的对象要序列化,其实就是实现一个标示接口Serializable,下面将部分源码附上。
    这是一个userinfo类
    package com.example.regist;import java.io.Serializable;public class Userinfo implements Serializable {
    String userName;
    public String getUserName() {
    return userName;
    }
    public void setUserName(String userName) {
    this.userName = userName;
    }
    public String getUserPassword() {
    return userPassword;
    }
    public void setUserPassword(String userPassword) {
    this.userPassword = userPassword;
    }
    public String getUserGender() {
    return userGender;
    }
    public void setUserGender(String userGender) {
    this.userGender = userGender;
    }
    public String getUserBathday() {
    return userBathday;
    }
    public void setUserBathday(String userBathday) {
    this.userBathday = userBathday;
    }
    public String getUserLove() {
    return userLove;
    }
    public void setUserLove(String userLove) {
    this.userLove = userLove;
    }
    public String getUserEmail() {
    return userEmail;
    }
    public void setUserEmail(String userEmail) {
    this.userEmail = userEmail;
    }
    String userPassword;
    String userGender;
    boolean userIsmarry;
    public boolean isUserIsmarry() {
    return userIsmarry;
    }
    public void setUserIsmarry(boolean userIsmarry) {
    this.userIsmarry = userIsmarry;
    }
    String userBathday;
    String userLove;
    String userEmail;
    }
    可以看出该类实现了Serializable接口。
    下面是跳转加传值的部分代码:
    Intent intent=new Intent();
    intent.setClass(MainActivity.this,SecondviewActivity.class);
    intent.putExtra("user",user);//user是实例化之后的对象
    startActivity(intent);
    下面是第二个界面所对应的类接受传过来的对象的代码
    TextView tex=new TextView(this);
    Intent intent=getIntent();
    Userinfo user=(Userinfo) intent.getSerializableExtra("user");
    现在就是一个完整的user对象了,你可以随性而用了。

    Q5:android intent跳转怎样传输大数据

    在Activity或者组件之前传递信息时,一般采用intent绑定bundle的方式传值,但在使用过程中需要注意的是不要用bundle传递大容量数据:
    在做项目的过程中,需要将听写界面的听写结果信息传递到听写记录界面供显示用,但是由于传递的数据量过大导致程序ANR,甚至直接报异常(传递的信息里面有bitmap转换成的byte数组、每一个词组的拼音、词语、语音信息),经过分析发现是由于bundle不能传递大容量的数据信息,在stackoverflow里面查阅发现有同行遇到类似的问题:
    (1)“The size limit of Intent is still pretty low in Jelly Bean, which is somewhat lower than 1MB (around 90K), so you should always be cautious about your data length, even if your application targets only latest Android versions.”
    (2)“As per my experience (sometime ago), you are able to put up to 1MB of data in a Bundleencapsulated inside Intent. I think, this restriction was valid up till Froyo or GingerBread.”
    所以在通过bundle传递数据时只能传递较小的数据信息,对于在不同组件之间需要传递大容量数据的情况时,有几种替代方式可以解决不能用bundle传递这些数据的问题:
    方法一:将需要传递的数据写在临时文件或者数据库中,再跳转到另外一个组件的时候再去读取这些数据信息,这种处理方式会由于读写文件较为耗时导致程序运行效率较低;
    方法二:将需要传递的数据信息封装在一个静态的类中(注意当前组件和要跳转到的组件必须属于同一个进程,因为进程之间才能够共享数据),在当前组件中为类设置内容,然后再跳转到的组件中去取,这种处理方式效率很高,但是会破坏程序的独立性。
    具体采用哪种替代方式取决于具体的情况,本人建议采取第二种处理方式,因为这样会大大提高程序的运行效率,至于程序的独立性,看你怎么去封装这个类了。wWw.yiJitao.C.oM

    相关文章
    健身房健身器材使用方法2018-08-29
    健身器材使用方法2018-09-05
    收腹带的正确使用方法2018-09-12
    一体传真机的使用方法2019-01-11
    蚕丝面膜的正确使用方法2019-01-12
    微信号违反了微信个人帐号使用规范2019-01-13
    正确的护肤品使用顺序2019-01-13
    接口与抽象类使用区别2019-01-14
    一套护肤品的使用步骤2019-01-14
    简述如何正确使用名片2019-01-15