提交 97bf1a2f 编写于 作者: J jessyan

add ActivityLifecycle

上级 d9167da2
......@@ -4,6 +4,6 @@ package me.jessyan.mvparms.demo.app;
* Created by jess on 8/30/16 16:39
* Contact with jess.yan.effort@gmail.com
*/
public interface EventBusTag {
public interface EventBusTags {
}
package com.jess.arms.base;
import android.app.Activity;
import android.app.Application;
import android.os.Bundle;
import javax.inject.Inject;
import javax.inject.Singleton;
import static com.jess.arms.base.BaseActivity.IS_NOT_ADD_ACTIVITY_LIST;
/**
* Created by jess on 21/02/2017 14:23
* Contact with jess.yan.effort@gmail.com
*/
@Singleton
public class ActivityLifecycle implements Application.ActivityLifecycleCallbacks {
private AppManager mAppManager;
@Inject
public ActivityLifecycle(AppManager appManager) {
this.mAppManager = appManager;
}
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
//如果intent包含了此字段,并且为true说明不加入到list
// 默认为false,如果不需要管理(比如不需要在退出所有activity(killAll)时,退出此activity就在intent加此字段为true)
boolean isNotAdd = false;
if (activity.getIntent() != null)
isNotAdd = activity.getIntent().getBooleanExtra(IS_NOT_ADD_ACTIVITY_LIST, false);
if (!isNotAdd)
mAppManager.addActivity((BaseActivity) activity);
}
@Override
public void onActivityStarted(Activity activity) {
}
@Override
public void onActivityResumed(Activity activity) {
mAppManager.setCurrentActivity((BaseActivity) activity);
}
@Override
public void onActivityPaused(Activity activity) {
if (mAppManager.getCurrentActivity() == activity) {
mAppManager.setCurrentActivity(null);
}
}
@Override
public void onActivityStopped(Activity activity) {
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
}
@Override
public void onActivityDestroyed(Activity activity) {
mAppManager.removeActivity((BaseActivity) activity);
}
}
......@@ -30,6 +30,8 @@ public abstract class BaseApplication extends Application {
private GlobeConfigModule mGlobeConfigModule;
@Inject
protected AppManager mAppManager;
@Inject
protected ActivityLifecycle mActivityLifecycle;
protected final String TAG = this.getClass().getSimpleName();
......@@ -46,7 +48,7 @@ public abstract class BaseApplication extends Application {
this.mImagerModule = new ImageModule();//图片加载框架默认使用glide
this.mClientModule = new ClientModule(mAppManager);//用于提供okhttp和retrofit的单例
this.mGlobeConfigModule = checkNotNull(getGlobeConfigModule(), "lobeConfigModule is required");
registerActivityLifecycleCallbacks(mActivityLifecycle);
}
/**
......@@ -61,6 +63,9 @@ public abstract class BaseApplication extends Application {
this.mAppModule = null;
if (mImagerModule != null)
this.mImagerModule = null;
if (mActivityLifecycle != null) {
unregisterActivityLifecycleCallbacks(mActivityLifecycle);
}
if (mAppManager != null) {//释放资源
this.mAppManager.release();
this.mAppManager = null;
......
package com.jess.arms.base;
/**
* Created by jess on 8/30/16 17:00
* Contact with jess.yan.effort@gmail.com
*/
public class Config {
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册