版权声明:本文为HaiyuKing原创文章,转载请注明出处!

前言

封装Activity跳转的方法以及实现Activity任务栈管理。

效果图

 

代码分析

ActivityJump:封装Activity跳转以及任务栈增删改查操作方法

ActivityManager : Activity任务栈的管理

常用方法:

AddToTack(Activity mActivity) :将Activity添加到任务栈中,一般在Activity的OnCreate方法中调用

LogAllActivityNames() : 打印activity任务栈里面的所有Activity名称

finnishAllActivitys() : 销毁所有的Activity

==================================================================

NormalJump(Context mContext, Class<?> cls) : 普通跳转

NormalJumpAndFinish(Context mContext, Class<?> cls) : 普通跳转并销毁当前界面

==================================================================

BundleJump(Context mContext, Class<?> cls, Bundle bundle) : 带参跳转

BundleJumpAndFinish(Context mContext, Class<?> cls, Bundle bundle) : 带参跳转,并销毁当前界面

==================================================================

JumpForResult(Activity mActivity, Class<?> cls,int requestCode) : 不带参数的返回值跳转

JumpForResult(Activity mActivity, Class<?> cls,Bundle bundle, int requestCode) : 带参数和返回值跳转

==================================================================

Back(Context mContext) : 代替finish()

BackToAppointActivity(Context mContext,Class<?> cls) : 从当前界面返回到指定的界面:并finish所有activity

==================================================================

监听返回软键事件

/**截取返回软键事件*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) {
ActivityJump.Back(this);//防止内存泄漏 return true;
}
return super.onKeyDown(keyCode, event);
}

使用步骤

一、项目组织结构图

注意事项:

1、  导入类文件后需要change包名以及重新import R文件路径

2、  Values目录下的文件(strings.xml、dimens.xml、colors.xml等),如果项目中存在,则复制里面的内容,不要整个覆盖

二、导入步骤

将ActivityJump和ActivityManager复制到项目中

在BaseActivity中添加以下代码

package com.why.project.activityjumpdemo.activity;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.KeyEvent; import com.why.project.activityjumpdemo.utils.ActivityJump; /**
* Created by HaiyuKing
* Used Activity基类
*/ public class BaseActivity extends AppCompatActivity { @Override
protected void onCreate(Bundle savedInstanceState) {
ActivityJump.AddToTack(this);
super.onCreate(savedInstanceState);
} /*
*/
@Override
protected void onStop() {
super.onStop(); ActivityJump.LogAllActivityNames();
} /**截取返回软键事件*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) {
ActivityJump.Back(this);//防止内存泄漏 return true;
}
return super.onKeyDown(keyCode, event);
} }

三、使用方法

普通跳转

btn_openActivity.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ActivityJump.NormalJump(MainActivity.this,SecondActivity.class);
}
});

普通返回

btn_back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ActivityJump.Back(SecondActivity.this);
}
});

混淆配置

参考资料

暂时空缺

项目demo下载地址

https://github.com/haiyuKing/ActivityJumpDemo

ActivityJump+ActivityManager【Activity之间的跳转和Activity任务栈管理】的更多相关文章

  1. 实现android activity之间的跳转

    android程序一般不会只有一个activity,会碰到activity之间的跳转.以下是使用Intent做应用程序内部的activity做跳转.比如,应用程序第一个activity是: 点击“下一 ...

  2. 杂记之activity之间的跳转

    代码结构图 manifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xml ...

  3. Android activity之间的跳转和数据传递

    1.Activity之间的跳转 并且 传递数据 A Activity进行的操作 Intent intent = new Intent(context, B.class); intent.putExtr ...

  4. Android 写一个Activity之间来回跳转的全局工具类(主要是想实现代码的复用)

    废话不多说了,直接上代码,相信大家都能看得懂的. 一.主要工具类 package com.yw.chat.utils; import android.app.Activity; import andr ...

  5. 利用onNewIntent避免Activity之间的跳转传值多次实体化

    onNewIntent 需要注意的是: 1.通过Intent启到一个Activity的时候,就算已经存在一个相同的正在运行的Activity,系统也会创建一个新的Activity实例.为了不让Acti ...

  6. Activity之间的跳转

    /* * 触发按钮bt1跳转到另一个Activity */ bt1.setOnClickListener(new OnClickListener() { @Override public void o ...

  7. 安卓欢迎界面和activity之间的跳转问题

    使用安卓的UI界面,就不得不了解activity,由于actvity就像是一个form表单一样,全部的UI都呈如今这里,他能够承载全部的UI控件. INtent就是一个中继站一样.他负责组件之间的沟通 ...

  8. Android笔记(三) 使得Activity之间可以跳转---Intent

    什么是Intent 一个APP肯定不单单由一个Activity构成,我们在使用过程中,经常需要在多个Activity中跳转,Android中Intent可以帮我们来完成在各个Activity中跳转的功 ...

  9. Activity之间定时跳转

    起源:很多应用在打开时,首先会加载欢迎页面,经过几秒后再跳转到主页面. 下面,我通过两种不同的方式来实现页面的定时跳转. 第一种方式: 通过Timer类的schedule方法. 实现从MainActi ...

随机推荐

  1. Python3 requests与http.cookiejar的使用(cookie的保存与加载)

    在学习Python之余,发现Python2与Python3 有很大的变化,之前使用urllib和cookielib来保存cookie,发现很繁琐,于是改用requests.发现cookielib在3. ...

  2. Elasticsearch笔记三之版本控制和插件

    版本控制 1:关系型数据库使用的是悲观锁,数据被读取后就被锁定其他的线程就无法对其进行修改. 2:ex使用的是乐观锁,数据被读取后其他程序还可以对其进行修改,而执行修改时发现此数据已经被修改则修改就会 ...

  3. bzoj 3505 [Cqoi2014]数三角形 组合

    ans=所有的三点排列-共行的-共列的-斜着一条线的 斜着的枚举每个点和原点的gcd,反过来也可以,还能左右,上下挪 #include<cstdio> #include<cstrin ...

  4. BZOJ_1705_[Usaco2007 Nov]Telephone Wire 架设电话线_DP

    BZOJ_1705_[Usaco2007 Nov]Telephone Wire 架设电话线_DP Description 最近,Farmer John的奶牛们越来越不满于牛棚里一塌糊涂的电话服务 于是 ...

  5. 浅谈.Net异步编程的前世今生----APM篇

    前言 在.Net程序开发过程中,我们经常会遇到如下场景: 编写WinForm程序客户端,需要查询数据库获取数据,于是我们根据需求写好了代码后,点击查询,发现界面卡死,无法响应.经过调试,发现查询数据库 ...

  6. API做翻页的两种思路

    在开发API的时候,有时候数据太多了,就需要分页读取. 基于偏移量的分页(Offset-based) 这种方式就是会提供一个每页笔数(page size)来定义返回条目的最大数,提供一个页数(page ...

  7. ShortcutBadgerDemo【安卓应用角标(badge)实现方案】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 本文主要使用的开源库是 leolin310148/ShortcutBadger,但是在其基础上做了一些修改. 什么是应用角标? 1. ...

  8. [PHP] debug_backtrace()可以获取到代码的调用路径追踪

    查看代码的时候,看到有使用这个函数,测试一下 1.debug_backtrace()可以获取到代码的调用追踪,以数组形式返回 2.debug_print_backtrace() — 打印一条回溯,直接 ...

  9. php一致性hash算法的应用

    阅读这篇博客前首先你需要知道什么是分布式存储以及分布式存储中的数据分片存储的方式有哪些? 分布式存储系统设计(2)—— 数据分片 阅读玩这篇文章后你会知道分布式存储的最优方案是使用 一致性hash算法 ...

  10. 设计模式之适配者模式——Java语言描述 | Amos H's blog

    适配器模式是作为两个不兼容的接口之间的桥梁.这种类型的设计模糊属于结构性模式,它结合了两个独立接口的功能 概念阐述 使用适配器模式可以解决在软件系统中,将一些旧的类放入新环境中,但是新环境要求的接口旧 ...