版权声明:本文为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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)