Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
门心叼龙
MVPArms
提交
b161a46a
M
MVPArms
项目概览
门心叼龙
/
MVPArms
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
MVPArms
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b161a46a
编写于
11月 10, 2016
作者:
J
jessyan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
control eventbus
上级
0d5b6d24
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
65 addition
and
11 deletion
+65
-11
arms/src/main/java/com/jess/arms/base/BaseActivity.java
arms/src/main/java/com/jess/arms/base/BaseActivity.java
+20
-4
arms/src/main/java/com/jess/arms/base/BaseFragment.java
arms/src/main/java/com/jess/arms/base/BaseFragment.java
+32
-2
arms/src/main/java/com/jess/arms/base/BaseHolder.java
arms/src/main/java/com/jess/arms/base/BaseHolder.java
+0
-3
arms/src/main/java/com/jess/arms/mvp/BasePresenter.java
arms/src/main/java/com/jess/arms/mvp/BasePresenter.java
+13
-2
未找到文件。
arms/src/main/java/com/jess/arms/base/BaseActivity.java
浏览文件 @
b161a46a
...
...
@@ -37,6 +37,7 @@ public abstract class BaseActivity<P extends BasePresenter> extends RxAppCompatA
private
static
final
String
LAYOUT_LINEARLAYOUT
=
"LinearLayout"
;
private
static
final
String
LAYOUT_FRAMELAYOUT
=
"FrameLayout"
;
private
static
final
String
LAYOUT_RELATIVELAYOUT
=
"RelativeLayout"
;
public
static
final
String
IS_NOT_ADD_ACTIVITY_LIST
=
"is_add_activity_list"
;
//是否加入到activity的list,管理
private
Unbinder
mUnbinder
;
...
...
@@ -78,11 +79,15 @@ public abstract class BaseActivity<P extends BasePresenter> extends RxAppCompatA
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
mApplication
=
(
BaseApplication
)
getApplication
();
//如果intent包含了此字段,并且为true说明不加入到list
// 默认为false,如果不需要管理(比如不需要在退出所有activity(killAll)时,退出此activity就在intent加此字段为true)
boolean
isNotAdd
=
getIntent
().
getBooleanExtra
(
IS_NOT_ADD_ACTIVITY_LIST
,
false
);
synchronized
(
BaseActivity
.
class
)
{
mApplication
.
getActivityList
().
add
(
this
);
if
(!
isNotAdd
)
mApplication
.
getActivityList
().
add
(
this
);
}
EventBus
.
getDefault
().
register
(
this
);
//注册到事件主线
if
(
useEventBus
())
//如果要使用eventbus请将此方法返回true
EventBus
.
getDefault
().
register
(
this
);
//注册到事件主线
setContentView
(
initView
());
//绑定到butterknife
mUnbinder
=
ButterKnife
.
bind
(
this
);
...
...
@@ -117,9 +122,20 @@ public abstract class BaseActivity<P extends BasePresenter> extends RxAppCompatA
}
if
(
mPresenter
!=
null
)
mPresenter
.
onDestroy
();
//释放资源
if
(
mUnbinder
!=
Unbinder
.
EMPTY
)
mUnbinder
.
unbind
();
EventBus
.
getDefault
().
unregister
(
this
);
if
(
useEventBus
())
//如果要使用eventbus请将此方法返回true
EventBus
.
getDefault
().
unregister
(
this
);
}
/**
* 是否使用eventBus,默认为使用(true),
*
* @return
*/
protected
boolean
useEventBus
()
{
return
false
;
}
@Override
public
void
onBackPressed
()
{
super
.
onBackPressed
();
...
...
arms/src/main/java/com/jess/arms/base/BaseFragment.java
浏览文件 @
b161a46a
...
...
@@ -40,7 +40,8 @@ public abstract class BaseFragment<P extends BasePresenter> extends RxFragment {
public
void
onActivityCreated
(
@Nullable
Bundle
savedInstanceState
)
{
super
.
onActivityCreated
(
savedInstanceState
);
mActivity
=
(
BaseActivity
)
getActivity
();
EventBus
.
getDefault
().
register
(
this
);
//注册到事件主线
if
(
useEventBus
())
//如果要使用eventbus请将此方法返回true
EventBus
.
getDefault
().
register
(
this
);
//注册到事件主线
ComponentInject
();
initData
();
}
...
...
@@ -61,7 +62,17 @@ public abstract class BaseFragment<P extends BasePresenter> extends RxFragment {
public
void
onDestroy
()
{
super
.
onDestroy
();
if
(
mPresenter
!=
null
)
mPresenter
.
onDestroy
();
//释放资源
EventBus
.
getDefault
().
unregister
(
this
);
if
(
useEventBus
())
//如果要使用eventbus请将此方法返回true
EventBus
.
getDefault
().
unregister
(
this
);
}
/**
* 是否使用eventBus,默认为使用(true),
*
* @return
*/
protected
boolean
useEventBus
()
{
return
false
;
}
...
...
@@ -70,10 +81,29 @@ public abstract class BaseFragment<P extends BasePresenter> extends RxFragment {
protected
abstract
void
initData
();
/**
* 此方法是让外部调用使fragment做一些操作的,比如说外部的activity想让fragment对象执行一些方法,
* 建议在有多个需要让外界调用的方法时,统一传bundle,里面存一个what字段,来区分不同的方法,在setData
* 方法中就可以switch做不同的操作,这样就可以用统一的入口方法做不同的事,和message同理
*
* 使用此方法时请注意调用时fragment的生命周期,如果调用此setData方法时onActivityCreated
* 还没执行,setData里调用presenter的方法时,是会报空的,因为dagger注入是在onActivityCreated
* 方法中执行的,如果要做一些初始化操作,可以不必让外部调setData,在内部onActivityCreated中
* 初始化就可以了
*
* @param data
*/
public
void
setData
(
Object
data
)
{
}
/**
* 使用此方法时请注意调用时fragment的生命周期,如果调用此setData方法时onActivityCreated
* 还没执行,setData里调用presenter的方法时,是会报空的,因为dagger注入是在onActivityCreated
* 方法中执行的,如果要做一些初始化操作,可以不必让外部调setData,在内部onActivityCreated中
* 初始化就可以了
*
*/
public
void
setData
()
{
}
...
...
arms/src/main/java/com/jess/arms/base/BaseHolder.java
浏览文件 @
b161a46a
...
...
@@ -6,8 +6,6 @@ import android.view.View;
import
com.jess.arms.utils.KnifeUtil
;
import
com.zhy.autolayout.utils.AutoUtils
;
import
org.simple.eventbus.EventBus
;
/**
* Created by jess on 2015/11/24.
*/
...
...
@@ -19,7 +17,6 @@ public abstract class BaseHolder<T> extends RecyclerView.ViewHolder implements V
itemView
.
setOnClickListener
(
this
);
//点击事件
AutoUtils
.
autoSize
(
itemView
);
//适配
KnifeUtil
.
bindTarget
(
this
,
itemView
);
//绑定
EventBus
.
getDefault
().
register
(
this
);
//注册eventbus
}
...
...
arms/src/main/java/com/jess/arms/mvp/BasePresenter.java
浏览文件 @
b161a46a
...
...
@@ -34,12 +34,14 @@ public class BasePresenter<M, V extends BaseView> implements presenter {
@Override
public
void
onStart
()
{
EventBus
.
getDefault
().
register
(
this
);
//注册eventbus
if
(
useEventBus
())
//如果要使用eventbus请将此方法返回true
EventBus
.
getDefault
().
register
(
this
);
//注册eventbus
}
@Override
public
void
onDestroy
()
{
EventBus
.
getDefault
().
unregister
(
this
);
//解除注册eventbus
if
(
useEventBus
())
//如果要使用eventbus请将此方法返回true
EventBus
.
getDefault
().
unregister
(
this
);
//解除注册eventbus
unSubscribe
();
//解除订阅
this
.
mModel
=
null
;
this
.
mRootView
=
null
;
...
...
@@ -49,6 +51,15 @@ public class BasePresenter<M, V extends BaseView> implements presenter {
}
/**
* 是否使用eventBus,默认为使用(true),
*
* @return
*/
protected
boolean
useEventBus
()
{
return
false
;
}
protected
void
addSubscrebe
(
Subscription
subscription
)
{
if
(
mCompositeSubscription
==
null
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录