JessYanCoding / JessYanCoding/AndroidAutoSize

ActivityLifecycleCallbacks相关的基本生命周期方法未对外暴露

Aberta
#332 0 comentários 0 reações 0 responsáveis Ver no GitHub
Linguagem predominante
Java
Estrelas
13.7k
Forks
2k
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

### Environment
- [x] Autosize Version:1.2.1
- [x] Target Android Version:14
- [x] Device Model:
- [x] Device Resolution:
- [x] Design Size On AndroidManifest:

### Bug Description:

看过源码,发现框架使用Application.registerActivityLifecycleCallbacks来监听Activity的生命周期,但并没有对外暴露基本的生命周期方法,导致如果使用了该框架但也需要监听Activity生命周期的应用场景时,会无从下手,作者是否可以做一些补充呢

### Log:

```log

```

### Screenshot

### Related Code:
```java
/*
* Copyright 2018 JessYan
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package me.jessyan.autosize;

import android.app.Activity;
import android.app.Application;
import android.os.Bundle;

import static me.jessyan.autosize.AutoSizeConfig.DEPENDENCY_ANDROIDX;
import static me.jessyan.autosize.AutoSizeConfig.DEPENDENCY_SUPPORT;

/**
* ================================================
* {@link ActivityLifecycleCallbacksImpl} 可用来代替在 BaseActivity 中加入适配代码的传统方式
* {@link ActivityLifecycleCallbacksImpl} 这种方案类似于 AOP, 面向接口, 侵入性低, 方便统一管理, 扩展性强, 并且也支持适配三方库的 {@link Activity}
*


* Created by JessYan on 2018/8/8 14:32
* Contact me
* Follow me
* ================================================
*/
public class ActivityLifecycleCallbacksImpl implements Application.ActivityLifecycleCallbacks {
/**
* 屏幕适配逻辑策略类
*/
private AutoAdaptStrategy mAutoAdaptStrategy;
/**
* 让 Fragment 支持自定义适配参数
*/
private FragmentLifecycleCallbacksImpl mFragmentLifecycleCallbacks;
private FragmentLifecycleCallbacksImplToAndroidx mFragmentLifecycleCallbacksToAndroidx;

public ActivityLifecycleCallbacksImpl(AutoAdaptStrategy autoAdaptStrategy) {
if (DEPENDENCY_ANDROIDX) {
mFragmentLifecycleCallbacksToAndroidx = new FragmentLifecycleCallbacksImplToAndroidx(autoAdaptStrategy);
} else if (DEPENDENCY_SUPPORT){
mFragmentLifecycleCallbacks = new FragmentLifecycleCallbacksImpl(autoAdaptStrategy);
}
mAutoAdaptStrategy = autoAdaptStrategy;
}

@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
if (AutoSizeConfig.getInstance().isCustomFragment()) {
if (mFragmentLifecycleCallbacksToAndroidx != null && activity instanceof androidx.fragment.app.FragmentActivity) {
((androidx.fragment.app.FragmentActivity) activity).getSupportFragmentManager().registerFragmentLifecycleCallbacks(mFragmentLifecycleCallbacksToAndroidx, true);
} else if (mFragmentLifecycleCallbacks != null && activity instanceof android.support.v4.app.FragmentActivity) {
((android.support.v4.app.FragmentActivity) activity).getSupportFragmentManager().registerFragmentLifecycleCallbacks(mFragmentLifecycleCallbacks, true);
}
}

//Activity 中的 setContentView(View) 一定要在 super.onCreate(Bundle); 之后执行
if (mAutoAdaptStrategy != null) {
mAutoAdaptStrategy.applyAdapt(activity, activity);
}
}

@Override
public void onActivityStarted(Activity activity) {
if (mAutoAdaptStrategy != null) {
mAutoAdaptStrategy.applyAdapt(activity, activity);
}
}

@Override
public void onActivityResumed(Activity activity) {

}

@Override
public void onActivityPaused(Activity activity) {

}

@Override
public void onActivityStopped(Activity activity) {

}

@Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {

}

@Override
public void onActivityDestroyed(Activity activity) {

}

/**
* 设置屏幕适配逻辑策略类
*
* @param autoAdaptStrategy {@link AutoAdaptStrategy}
*/
public void setAutoAdaptStrategy(AutoAdaptStrategy autoAdaptStrategy) {
mAutoAdaptStrategy = autoAdaptStrategy;
if (mFragmentLifecycleCallbacksToAndroidx != null) {
mFragmentLifecycleCallbacksToAndroidx.setAutoAdaptStrategy(autoAdaptStrategy);
} else if (mFragmentLifecycleCallbacks != null) {
mFragmentLifecycleCallbacks.setAutoAdaptStrategy(autoAdaptStrategy);
}
}
}

```

### Others:

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.