zoukankan      html  css  js  c++  java
  • ActivityJump+ActivityManager【Activity之间的跳转和Activity任务栈管理】

    版权声明:本文为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

  • 相关阅读:
    安全编码1
    VPP tips
    VPP概述汇总
    C语言安全编码摘录
    TCP-proxy
    Scipy Lecture Notes学习笔记(一)Getting started with Python for science 1.4. Matplotlib: plotting
    Scipy Lecture Notes学习笔记(一)Getting started with Python for science 1.3. NumPy: creating and manipulating numerical data
    Scipy Lecture Notes学习笔记(一)Getting started with Python for science 1.2. The Python language
    Scipy Lecture Notes学习笔记(一)Getting started with Python for science 1.1. Python scientific computing ecosystem
    25马5跑道,求最快的五匹马的需要比赛的次数
  • 原文地址:https://www.cnblogs.com/whycxb/p/7443052.html
Copyright © 2011-2022 走看看