/////本来是做的activity跳转,普通那种,但是会在调回来会销毁原来的,重新调用onCreate方法,

后来参考【http://blog.csdn.net/qq_26918031/article/details/52749685】,给intent设置flag,,FLAG_ACTIVITY_REORDER_TO_FRONT,

状态是保留了,但bundle数据传递布料,‘本来想使用Application存储全局的,【参照http://blog.csdn.net/li12412414/article/details/51867400】

但是翻看到疯狂android讲义第三版286页,设置了intent的flag,,,,,FLAG_ACTIVITY_BROUGHT_TO_FRONT,,,

就可以在再次启动后的onStart,onResume中找到bundle了,,,,,

测试文件,

布局1:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="数据展示1"
        />
    <Button
        android:id="@+id/btn_t1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="下"
        />
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="aaa"
        />
    <TextView
        android:id="@+id/tv_1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="show"
        />
</LinearLayout>

布局2:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="数据展示2"
        />
    <Button
        android:id="@+id/btn_t2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="上"
        />
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="111"
        />
    <TextView
        android:id="@+id/tv_2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="show"
        />
</LinearLayout>

对应的activity1

package com.example.administrator.no1;
//配置日志过滤【参照:http://blog.csdn.net/hyr83960944/article/details/38268395】
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.Button;
import android.widget.TextView;

/**
 * Created by Administrator on 2017/10/10 0010.
 */

public class TestActivityLife1 extends AppCompatActivity {
    Button button;
    TextView textView;
    int j=1;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.e("zzf","oncreate"+j++);
        setContentView(R.layout.test_a1);
        button = (Button) findViewById(R.id.btn_t1);
        textView = (TextView) findViewById(R.id.tv_1);
        button.setOnClickListener(v -> {
            Intent  intent = new Intent(TestActivityLife1.this,TestActivityLife2.class);
            Bundle bundle = new Bundle();
            bundle.putString("a","123");
            intent.putExtra("bun",bundle);
            intent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
            startActivity(intent);
        });
//        getApplicationContext().put
    }

    @Override
    protected void onStart() {
        super.onStart();
//        System.out.println("start"+j++);
        Log.e("zzf","start"+j+++""+getIntent().getBundleExtra("bun"));
    }

    @Override
    protected void onStop() {
        super.onStop();
//        System.out.println("stop"+j++);
        Log.e("zzf","stop"+j++);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
//        System.out.println("destroy"+j++);
        Log.e("zzf","destroy"+j++);
    }

    @Override
    protected void onPause() {
        super.onPause();
//        System.out.println("zzf:pause"+j++);
        Log.e("zzf","pause"+j++);
    }

    @Override
    protected void onResume() {
        super.onResume();
//        System.out.println("resume"+j++);
        Log.e("zzf","resume"+j+++""+getIntent().getBundleExtra("bun"));
        if (getIntent().getBundleExtra("bun") != null){
            Log.e("zzf","res111回馈数据suc:"+getIntent().getBundleExtra("bun").get("name"));
        }
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.e("zzf","restart"+j+++""+getIntent().getBundleExtra("bun"));
    }
}

activity2

package com.example.administrator.no1;
///设置了FLAG_ACTIVITY_REORDER_TO_FRONT标志后,虽然保留内存,当时bundle数据传递就没用了
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.Button;
import android.widget.TextView;

/**
 * Created by Administrator on 2017/10/10 0010.
 */

public class TestActivityLife2 extends AppCompatActivity {
    Button button;
    TextView textView;
    Intent intent1;
    int j;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.e("zzf","oncreate"+j++);
        setContentView(R.layout.test_a2);
        button = (Button) findViewById(R.id.btn_t2);
        textView = (TextView) findViewById(R.id.tv_2);
        intent1 = getIntent();
        button.setOnClickListener(v -> {
            Intent intent = new Intent(TestActivityLife2.this,TestActivityLife1.class);
            Bundle bundle = new Bundle();
            bundle.putString("name","zzf");
            intent.putExtra("bun",bundle);
            intent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
            startActivity(intent);
        });
    }
    @Override
    protected void onStart() {
        super.onStart();
//        System.out.println("start"+j++);
        Log.e("zzf","start"+j++);
    }

    @Override
    protected void onStop() {
        super.onStop();
//        System.out.println("stop"+j++);
        Log.e("zzf","stop"+j++);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
//        System.out.println("destroy"+j++);
        Log.e("zzf","destroy"+j++);
    }

    @Override
    protected void onPause() {
        super.onPause();
//        System.out.println("zzf:pause"+j++);
        Log.e("zzf","pause"+j++);
    }

    @Override
    protected void onResume() {
        super.onResume();
//        System.out.println("resume"+j++);
        Log.e("zzf","resume"+j++);
    }
}

多个activity跳转保留内存使用intent传递数据问题_新手的更多相关文章

  1. Android Activity传递数据使用getIntent()接收不到,揭秘Intent传递数据与Activity启动模式singleTask的关系。

    activity通过intent传递数据的时候,如果activity未启动,那么在这个刚启动的activity里通过getIntent()会获取到这个intent的数据.. 如果要启动的activit ...

  2. Android Intent传递数据

    刚开始看郭大神的<>,实现以下里面的一些例子.Intent传递数据. 我们利用显示的方式进行Intent的启动. 1.启动intent并输入数据. Intent intent=new In ...

  3. 【转】Android 之最新最全的Intent传递数据方法

    原文地址:https://www.jianshu.com/p/1169dba99261 intent传递数据 为什么要和intent单独拿出来讲,因为Intent传递数据也是非常重要的 一.简单的传递 ...

  4. Intent传递数据从一个Activity到另一个Activity

    MainActivity package com.test.intentdemo; import android.app.Activity; import android.content.Intent ...

  5. Android学习之基础知识四-Activity活动4讲(Intent传递数据)

    Intent除了可以开启一个活动,还能在启动活动的时候传递数据,此时Intent相当于一个保存数据的库,我们先把数据保存在Intent中,然后再根据各个activity的需要从其中取出数据.  一.使 ...

  6. Android 消息广播Intent传递数据

    1.创建布局文件activity_broadcast.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk ...

  7. Intent传递数据

    方式比较多,先看看代码,一会儿再总结. activity_main.xml <RelativeLayout xmlns:android="http://schemas.android. ...

  8. Android 开发中使用Intent传递数据的方法

    Activity之间通过Intent传递值,支持基本数据类型和String对象及 它们的数组对象byte.byte[].char.char[].boolean.boolean[].short.shor ...

  9. Android学习之Intent传递数据

    Intent在Activity中的作用主要是有两个: 1.启动目标Activity 2.传递数据 Intent在传递数据时分两种情况:向下一个Activity传递数据和从下一个Activity返回数据 ...

随机推荐

  1. Grails笔记一:windows8.1操作系统cmd下grails命令无效

    最近决定使用intellij idea工具来开发基于Grails框架的应用程序,,在安装好jdk 1.7以及配置好jdk和grails环境变量后进行grails测试,在win8.1的命令行窗口中输入以 ...

  2. Day-7: 模块知识

    Python中,一个.py文件就是一个模块(module):而,包含了多个模块的一个目录,称为包. 每一个包中,都包含一个_init_.py文件,可以是一个空文件,这是Python将普通目录识别为包的 ...

  3. ActiveMQ笔记——技术点汇总

    目录 · Introduction to ActiveMQ · Installing ActiveMQ · Message-oriented middleware · JMS specificatio ...

  4. ios 初体验< UISegmentedControl 分段控件>

     小知识:  数组快速创建 @[@"",@"",@"",@"".......],字典快速创建方法:@{@"&q ...

  5. poj3249 拓扑排序+DP

    题意:给出一个有向无环图,每个顶点都有一个权值.求一条从入度为0的顶点到出度为0的顶点的一条路径,路径上所有顶点权值和最大. 思路:因为是无环图,则对于每个点经过的路径求其最大权值有,dp[i]=ma ...

  6. python--对配置文件进行搜索,增加新的内容

    要求: 文件haproxy1.查 输入:www.oldboy.org 获取当前backend下的所有记录2.新建 输入: arg = {'backend': 'www.oldboy.org','rec ...

  7. RDS最佳实践(一)—如何选择你的RDS

    在去年双11之前,为了帮助商家准备天猫双11的大促,让用户更好的使用RDS,把RDS的性能发挥到最佳,保障双11当天面对爆发性增加的压力,不会由于RDS的瓶颈导致系统出现问题,编写了 RDS的最佳实践 ...

  8. 2016-2017-2 《Java 程序设计》课堂实践项目

    目录 基本工具 基础内容 Hello World 和 模块分解 数组的使用 命令行参数 递归 分支语句 String类的使用 类的定义与测试 多态 IO与异常 数据库 网络与安全 数据结构应用 And ...

  9. 结对编程-四则运算生成程序-GUI界面

    201421123118 张中结 201421123098 胡丹丹 a.需求分析 这个程序做成GUI(可以是Windows PC 上的,也可以是Mac.Linux,web,手机上的),成为一个有基本功 ...

  10. 201521123007《Java程序设计》第6周学习总结

    1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 2. 书面作业 1. clone方法 1.1 Object ...