多个activity跳转保留内存使用intent传递数据问题_新手
/////本来是做的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传递数据问题_新手的更多相关文章
- Android Activity传递数据使用getIntent()接收不到,揭秘Intent传递数据与Activity启动模式singleTask的关系。
activity通过intent传递数据的时候,如果activity未启动,那么在这个刚启动的activity里通过getIntent()会获取到这个intent的数据.. 如果要启动的activit ...
- Android Intent传递数据
刚开始看郭大神的<>,实现以下里面的一些例子.Intent传递数据. 我们利用显示的方式进行Intent的启动. 1.启动intent并输入数据. Intent intent=new In ...
- 【转】Android 之最新最全的Intent传递数据方法
原文地址:https://www.jianshu.com/p/1169dba99261 intent传递数据 为什么要和intent单独拿出来讲,因为Intent传递数据也是非常重要的 一.简单的传递 ...
- Intent传递数据从一个Activity到另一个Activity
MainActivity package com.test.intentdemo; import android.app.Activity; import android.content.Intent ...
- Android学习之基础知识四-Activity活动4讲(Intent传递数据)
Intent除了可以开启一个活动,还能在启动活动的时候传递数据,此时Intent相当于一个保存数据的库,我们先把数据保存在Intent中,然后再根据各个activity的需要从其中取出数据. 一.使 ...
- Android 消息广播Intent传递数据
1.创建布局文件activity_broadcast.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk ...
- Intent传递数据
方式比较多,先看看代码,一会儿再总结. activity_main.xml <RelativeLayout xmlns:android="http://schemas.android. ...
- Android 开发中使用Intent传递数据的方法
Activity之间通过Intent传递值,支持基本数据类型和String对象及 它们的数组对象byte.byte[].char.char[].boolean.boolean[].short.shor ...
- Android学习之Intent传递数据
Intent在Activity中的作用主要是有两个: 1.启动目标Activity 2.传递数据 Intent在传递数据时分两种情况:向下一个Activity传递数据和从下一个Activity返回数据 ...
随机推荐
- 3_SQL Server通过代码的方式添加数据
--通过代码添加数据 --第一种方式--insert into 表名(列名1,列名2,...)values (值1,值2,...)insert into Department(DepName, Dep ...
- shell变量$(CURDIR),$0,$1,$2,$#含义解释
$(CURDIR): CURDIR是make的内嵌变量, 为当前目录 实例 SRCTREE := $(CURDIR) *$(CURDIR)为当前目录,相当于SRCTREE=./ MKCONFIG ...
- poj 1986LCA离线dfs+并查集
题意,给出边和权值,求出两个点间的最短距离. 用离线算法的时候有个地方不知道怎么处理了.在线的本来想用倍增的,但发现倍增算法貌似需要预处理深度而不是权值,不知道怎么处理.套一个rmq的模板吧,用来处理 ...
- Rehat一键安装mysql脚本和备份数据库脚本
Rehat一键安装mysql脚本 ##说明:适用,Rehat 5 6 7 1.运行状态,运行成功输出mysql临时密码 2.代码如下 #!/bin/bash #获取系统信息 sudo cat /etc ...
- C# xml增删查改
C# XML XmlDocument 添加命名空间: using System.Xml; 定义公共对象: XmlDocument xmldoc ; XmlNode xmlnode ; XmlEleme ...
- 201521123057 《Java程序设计》第3周学习总结
1. 本周学习总结 2. 书面作业 1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; p ...
- 201521123077 《Java程序设计》第14周学习总结
1. 本周学习总结 1.1以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 -参考:实验任务书-题目1 建立数据库,将自己的姓名.学号作为一条 ...
- 201521123027 <java程序设计>第十周学习总结
1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 异常: 多线程: 2.书面作业 Q1.finally 题目4-2 1.1 截图你的提交结果(出现学号) 1.2 ...
- 201521123070 《JAVA程序设计》第10周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 本次PTA作业题集异常.多线程 Q1. finally 题目4-2 1.1 截图你的提交结果 ...
- Spring第二篇【Core模块之快速入门、bean创建细节、创建对象】
前言 上篇Spring博文主要引出了为啥我们需要使用Spring框架,以及大致了解了Spring是分为六大模块的-.本博文主要讲解Spring的core模块! 搭建配置环境 引入jar包 本博文主要是 ...