Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
门心叼龙
MVPArms
提交
709d591e
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,体验更适合开发者的 AI 搜索 >>
提交
709d591e
编写于
8月 23, 2018
作者:
P
passin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
improve lifecycle log
上级
b0380eda
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
101 addition
and
51 deletion
+101
-51
arms/src/main/java/com/jess/arms/integration/FragmentLifecycle.java
...ain/java/com/jess/arms/integration/FragmentLifecycle.java
+0
-16
demo/src/main/java/me/jessyan/mvparms/demo/app/ActivityLifecycleCallbacksImpl.java
...syan/mvparms/demo/app/ActivityLifecycleCallbacksImpl.java
+7
-7
demo/src/main/java/me/jessyan/mvparms/demo/app/FragmentLifecycleCallbacksImpl.java
...syan/mvparms/demo/app/FragmentLifecycleCallbacksImpl.java
+93
-0
demo/src/main/java/me/jessyan/mvparms/demo/app/GlobalConfiguration.java
...java/me/jessyan/mvparms/demo/app/GlobalConfiguration.java
+1
-28
未找到文件。
arms/src/main/java/com/jess/arms/integration/FragmentLifecycle.java
浏览文件 @
709d591e
...
...
@@ -21,19 +21,15 @@ import android.support.annotation.NonNull;
import
android.support.v4.app.Fragment
;
import
android.support.v4.app.FragmentManager
;
import
android.view.View
;
import
com.jess.arms.base.delegate.FragmentDelegate
;
import
com.jess.arms.base.delegate.FragmentDelegateImpl
;
import
com.jess.arms.base.delegate.IFragment
;
import
com.jess.arms.integration.cache.Cache
;
import
com.jess.arms.integration.cache.IntelligentCache
;
import
com.jess.arms.utils.Preconditions
;
import
javax.inject.Inject
;
import
javax.inject.Singleton
;
import
timber.log.Timber
;
/**
* ================================================
* {@link FragmentManager.FragmentLifecycleCallbacks} 默认实现类
...
...
@@ -53,7 +49,6 @@ public class FragmentLifecycle extends FragmentManager.FragmentLifecycleCallback
@Override
public
void
onFragmentAttached
(
FragmentManager
fm
,
Fragment
f
,
Context
context
)
{
Timber
.
w
(
f
.
toString
()
+
" - onFragmentAttached"
);
if
(
f
instanceof
IFragment
)
{
FragmentDelegate
fragmentDelegate
=
fetchFragmentDelegate
(
f
);
if
(
fragmentDelegate
==
null
||
!
fragmentDelegate
.
isAdded
())
{
...
...
@@ -69,7 +64,6 @@ public class FragmentLifecycle extends FragmentManager.FragmentLifecycleCallback
@Override
public
void
onFragmentCreated
(
FragmentManager
fm
,
Fragment
f
,
Bundle
savedInstanceState
)
{
Timber
.
w
(
f
.
toString
()
+
" - onFragmentCreated"
);
FragmentDelegate
fragmentDelegate
=
fetchFragmentDelegate
(
f
);
if
(
fragmentDelegate
!=
null
)
{
fragmentDelegate
.
onCreate
(
savedInstanceState
);
...
...
@@ -78,7 +72,6 @@ public class FragmentLifecycle extends FragmentManager.FragmentLifecycleCallback
@Override
public
void
onFragmentViewCreated
(
FragmentManager
fm
,
Fragment
f
,
View
v
,
Bundle
savedInstanceState
)
{
Timber
.
w
(
f
.
toString
()
+
" - onFragmentViewCreated"
);
FragmentDelegate
fragmentDelegate
=
fetchFragmentDelegate
(
f
);
if
(
fragmentDelegate
!=
null
)
{
fragmentDelegate
.
onCreateView
(
v
,
savedInstanceState
);
...
...
@@ -87,7 +80,6 @@ public class FragmentLifecycle extends FragmentManager.FragmentLifecycleCallback
@Override
public
void
onFragmentActivityCreated
(
FragmentManager
fm
,
Fragment
f
,
Bundle
savedInstanceState
)
{
Timber
.
w
(
f
.
toString
()
+
" - onFragmentActivityCreated"
);
FragmentDelegate
fragmentDelegate
=
fetchFragmentDelegate
(
f
);
if
(
fragmentDelegate
!=
null
)
{
fragmentDelegate
.
onActivityCreate
(
savedInstanceState
);
...
...
@@ -96,7 +88,6 @@ public class FragmentLifecycle extends FragmentManager.FragmentLifecycleCallback
@Override
public
void
onFragmentStarted
(
FragmentManager
fm
,
Fragment
f
)
{
Timber
.
w
(
f
.
toString
()
+
" - onFragmentStarted"
);
FragmentDelegate
fragmentDelegate
=
fetchFragmentDelegate
(
f
);
if
(
fragmentDelegate
!=
null
)
{
fragmentDelegate
.
onStart
();
...
...
@@ -105,7 +96,6 @@ public class FragmentLifecycle extends FragmentManager.FragmentLifecycleCallback
@Override
public
void
onFragmentResumed
(
FragmentManager
fm
,
Fragment
f
)
{
Timber
.
w
(
f
.
toString
()
+
" - onFragmentResumed"
);
FragmentDelegate
fragmentDelegate
=
fetchFragmentDelegate
(
f
);
if
(
fragmentDelegate
!=
null
)
{
fragmentDelegate
.
onResume
();
...
...
@@ -114,7 +104,6 @@ public class FragmentLifecycle extends FragmentManager.FragmentLifecycleCallback
@Override
public
void
onFragmentPaused
(
FragmentManager
fm
,
Fragment
f
)
{
Timber
.
w
(
f
.
toString
()
+
" - onFragmentPaused"
);
FragmentDelegate
fragmentDelegate
=
fetchFragmentDelegate
(
f
);
if
(
fragmentDelegate
!=
null
)
{
fragmentDelegate
.
onPause
();
...
...
@@ -123,7 +112,6 @@ public class FragmentLifecycle extends FragmentManager.FragmentLifecycleCallback
@Override
public
void
onFragmentStopped
(
FragmentManager
fm
,
Fragment
f
)
{
Timber
.
w
(
f
.
toString
()
+
" - onFragmentStopped"
);
FragmentDelegate
fragmentDelegate
=
fetchFragmentDelegate
(
f
);
if
(
fragmentDelegate
!=
null
)
{
fragmentDelegate
.
onStop
();
...
...
@@ -132,7 +120,6 @@ public class FragmentLifecycle extends FragmentManager.FragmentLifecycleCallback
@Override
public
void
onFragmentSaveInstanceState
(
FragmentManager
fm
,
Fragment
f
,
Bundle
outState
)
{
Timber
.
w
(
f
.
toString
()
+
" - onFragmentSaveInstanceState"
);
FragmentDelegate
fragmentDelegate
=
fetchFragmentDelegate
(
f
);
if
(
fragmentDelegate
!=
null
)
{
fragmentDelegate
.
onSaveInstanceState
(
outState
);
...
...
@@ -141,7 +128,6 @@ public class FragmentLifecycle extends FragmentManager.FragmentLifecycleCallback
@Override
public
void
onFragmentViewDestroyed
(
FragmentManager
fm
,
Fragment
f
)
{
Timber
.
w
(
f
.
toString
()
+
" - onFragmentViewDestroyed"
);
FragmentDelegate
fragmentDelegate
=
fetchFragmentDelegate
(
f
);
if
(
fragmentDelegate
!=
null
)
{
fragmentDelegate
.
onDestroyView
();
...
...
@@ -150,7 +136,6 @@ public class FragmentLifecycle extends FragmentManager.FragmentLifecycleCallback
@Override
public
void
onFragmentDestroyed
(
FragmentManager
fm
,
Fragment
f
)
{
Timber
.
w
(
f
.
toString
()
+
" - onFragmentDestroyed"
);
FragmentDelegate
fragmentDelegate
=
fetchFragmentDelegate
(
f
);
if
(
fragmentDelegate
!=
null
)
{
fragmentDelegate
.
onDestroy
();
...
...
@@ -159,7 +144,6 @@ public class FragmentLifecycle extends FragmentManager.FragmentLifecycleCallback
@Override
public
void
onFragmentDetached
(
FragmentManager
fm
,
Fragment
f
)
{
Timber
.
w
(
f
.
toString
()
+
" - onFragmentDetached"
);
FragmentDelegate
fragmentDelegate
=
fetchFragmentDelegate
(
f
);
if
(
fragmentDelegate
!=
null
)
{
fragmentDelegate
.
onDetach
();
...
...
demo/src/main/java/me/jessyan/mvparms/demo/app/ActivityLifecycleCallbacksImpl.java
浏览文件 @
709d591e
...
...
@@ -39,12 +39,12 @@ public class ActivityLifecycleCallbacksImpl implements Application.ActivityLifec
@Override
public
void
onActivityCreated
(
Activity
activity
,
Bundle
savedInstanceState
)
{
Timber
.
w
(
activity
+
" - onActivityCreated"
);
Timber
.
i
(
activity
+
" - onActivityCreated"
);
}
@Override
public
void
onActivityStarted
(
Activity
activity
)
{
Timber
.
w
(
activity
+
" - onActivityStarted"
);
Timber
.
i
(
activity
+
" - onActivityStarted"
);
if
(!
activity
.
getIntent
().
getBooleanExtra
(
"isInitToolbar"
,
false
))
{
//由于加强框架的兼容性,故将 setContentView 放到 onActivityCreated 之后,onActivityStarted 之前执行
//而 findViewById 必须在 Activity setContentView() 后才有效,所以将以下代码从之前的 onActivityCreated 中移动到 onActivityStarted 中执行
...
...
@@ -74,27 +74,27 @@ public class ActivityLifecycleCallbacksImpl implements Application.ActivityLifec
@Override
public
void
onActivityResumed
(
Activity
activity
)
{
Timber
.
w
(
activity
+
" - onActivityResumed"
);
Timber
.
i
(
activity
+
" - onActivityResumed"
);
}
@Override
public
void
onActivityPaused
(
Activity
activity
)
{
Timber
.
w
(
activity
+
" - onActivityPaused"
);
Timber
.
i
(
activity
+
" - onActivityPaused"
);
}
@Override
public
void
onActivityStopped
(
Activity
activity
)
{
Timber
.
w
(
activity
+
" - onActivityStopped"
);
Timber
.
i
(
activity
+
" - onActivityStopped"
);
}
@Override
public
void
onActivitySaveInstanceState
(
Activity
activity
,
Bundle
outState
)
{
Timber
.
w
(
activity
+
" - onActivitySaveInstanceState"
);
Timber
.
i
(
activity
+
" - onActivitySaveInstanceState"
);
}
@Override
public
void
onActivityDestroyed
(
Activity
activity
)
{
Timber
.
w
(
activity
+
" - onActivityDestroyed"
);
Timber
.
i
(
activity
+
" - onActivityDestroyed"
);
//横竖屏切换或配置改变时, Activity 会被重新创建实例, 但 Bundle 中的基础数据会被保存下来,移除该数据是为了保证重新创建的实例可以正常工作
activity
.
getIntent
().
removeExtra
(
"isInitToolbar"
);
}
...
...
demo/src/main/java/me/jessyan/mvparms/demo/app/FragmentLifecycleCallbacksImpl.java
0 → 100644
浏览文件 @
709d591e
package
me.jessyan.mvparms.demo.app
;
import
android.content.Context
;
import
android.os.Bundle
;
import
android.support.v4.app.Fragment
;
import
android.support.v4.app.FragmentManager
;
import
android.view.View
;
import
com.jess.arms.integration.cache.IntelligentCache
;
import
com.jess.arms.utils.ArmsUtils
;
import
com.squareup.leakcanary.RefWatcher
;
import
timber.log.Timber
;
/**
* ================================================
* 展示 {@link FragmentManager.FragmentLifecycleCallbacks} 的用法
* <p>
* Created by JessYan on 23/08/2018 17:14
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* ================================================
*/
public
class
FragmentLifecycleCallbacksImpl
extends
FragmentManager
.
FragmentLifecycleCallbacks
{
@Override
public
void
onFragmentAttached
(
FragmentManager
fm
,
Fragment
f
,
Context
context
)
{
Timber
.
i
(
f
.
toString
()
+
" - onFragmentAttached"
);
}
@Override
public
void
onFragmentCreated
(
FragmentManager
fm
,
Fragment
f
,
Bundle
savedInstanceState
)
{
Timber
.
i
(
f
.
toString
()
+
" - onFragmentCreated"
);
// 在配置变化的时候将这个 Fragment 保存下来,在 Activity 由于配置变化重建时重复利用已经创建的 Fragment。
// https://developer.android.com/reference/android/app/Fragment.html?hl=zh-cn#setRetainInstance(boolean)
// 如果在 XML 中使用 <Fragment/> 标签,的方式创建 Fragment 请务必在标签中加上 android:id 或者 android:tag 属性,否则 setRetainInstance(true) 无效
// 在 Activity 中绑定少量的 Fragment 建议这样做,如果需要绑定较多的 Fragment 不建议设置此参数,如 ViewPager 需要展示较多 Fragment
f
.
setRetainInstance
(
true
);
}
@Override
public
void
onFragmentViewCreated
(
FragmentManager
fm
,
Fragment
f
,
View
v
,
Bundle
savedInstanceState
)
{
Timber
.
i
(
f
.
toString
()
+
" - onFragmentViewCreated"
);
}
@Override
public
void
onFragmentActivityCreated
(
FragmentManager
fm
,
Fragment
f
,
Bundle
savedInstanceState
)
{
Timber
.
i
(
f
.
toString
()
+
" - onFragmentActivityCreated"
);
}
@Override
public
void
onFragmentStarted
(
FragmentManager
fm
,
Fragment
f
)
{
Timber
.
i
(
f
.
toString
()
+
" - onFragmentStarted"
);
}
@Override
public
void
onFragmentResumed
(
FragmentManager
fm
,
Fragment
f
)
{
Timber
.
i
(
f
.
toString
()
+
" - onFragmentResumed"
);
}
@Override
public
void
onFragmentPaused
(
FragmentManager
fm
,
Fragment
f
)
{
Timber
.
i
(
f
.
toString
()
+
" - onFragmentPaused"
);
}
@Override
public
void
onFragmentStopped
(
FragmentManager
fm
,
Fragment
f
)
{
Timber
.
i
(
f
.
toString
()
+
" - onFragmentStopped"
);
}
@Override
public
void
onFragmentSaveInstanceState
(
FragmentManager
fm
,
Fragment
f
,
Bundle
outState
)
{
Timber
.
i
(
f
.
toString
()
+
" - onFragmentSaveInstanceState"
);
}
@Override
public
void
onFragmentViewDestroyed
(
FragmentManager
fm
,
Fragment
f
)
{
Timber
.
i
(
f
.
toString
()
+
" - onFragmentViewDestroyed"
);
}
@Override
public
void
onFragmentDestroyed
(
FragmentManager
fm
,
Fragment
f
)
{
Timber
.
i
(
f
.
toString
()
+
" - onFragmentDestroyed"
);
((
RefWatcher
)
ArmsUtils
.
obtainAppComponentFromContext
(
f
.
getActivity
())
.
extras
()
.
get
(
IntelligentCache
.
getKeyOfKeep
(
RefWatcher
.
class
.
getName
())))
.
watch
(
f
);
}
@Override
public
void
onFragmentDetached
(
FragmentManager
fm
,
Fragment
f
)
{
Timber
.
i
(
f
.
toString
()
+
" - onFragmentDetached"
);
}
}
demo/src/main/java/me/jessyan/mvparms/demo/app/GlobalConfiguration.java
浏览文件 @
709d591e
...
...
@@ -17,22 +17,14 @@ package me.jessyan.mvparms.demo.app;
import
android.app.Application
;
import
android.content.Context
;
import
android.os.Bundle
;
import
android.support.v4.app.Fragment
;
import
android.support.v4.app.FragmentManager
;
import
com.jess.arms.base.delegate.AppLifecycles
;
import
com.jess.arms.di.module.GlobalConfigModule
;
import
com.jess.arms.http.imageloader.glide.GlideImageLoaderStrategy
;
import
com.jess.arms.http.log.RequestInterceptor
;
import
com.jess.arms.integration.ConfigModule
;
import
com.jess.arms.integration.cache.IntelligentCache
;
import
com.jess.arms.utils.ArmsUtils
;
import
com.squareup.leakcanary.RefWatcher
;
import
java.util.List
;
import
java.util.concurrent.TimeUnit
;
import
me.jessyan.mvparms.demo.BuildConfig
;
import
me.jessyan.mvparms.demo.mvp.model.api.Api
;
import
me.jessyan.progressmanager.ProgressManager
;
...
...
@@ -168,26 +160,7 @@ public final class GlobalConfiguration implements ConfigModule {
@Override
public
void
injectFragmentLifecycle
(
Context
context
,
List
<
FragmentManager
.
FragmentLifecycleCallbacks
>
lifecycles
)
{
lifecycles
.
add
(
new
FragmentManager
.
FragmentLifecycleCallbacks
()
{
@Override
public
void
onFragmentCreated
(
FragmentManager
fm
,
Fragment
f
,
Bundle
savedInstanceState
)
{
// 在配置变化的时候将这个 Fragment 保存下来,在 Activity 由于配置变化重建时重复利用已经创建的 Fragment。
// https://developer.android.com/reference/android/app/Fragment.html?hl=zh-cn#setRetainInstance(boolean)
// 如果在 XML 中使用 <Fragment/> 标签,的方式创建 Fragment 请务必在标签中加上 android:id 或者 android:tag 属性,否则 setRetainInstance(true) 无效
// 在 Activity 中绑定少量的 Fragment 建议这样做,如果需要绑定较多的 Fragment 不建议设置此参数,如 ViewPager 需要展示较多 Fragment
f
.
setRetainInstance
(
true
);
}
@Override
public
void
onFragmentDestroyed
(
FragmentManager
fm
,
Fragment
f
)
{
((
RefWatcher
)
ArmsUtils
.
obtainAppComponentFromContext
(
f
.
getActivity
())
.
extras
()
.
get
(
IntelligentCache
.
getKeyOfKeep
(
RefWatcher
.
class
.
getName
())))
.
watch
(
f
);
}
});
lifecycles
.
add
(
new
FragmentLifecycleCallbacksImpl
());
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录