Android Dev 工具类链式调用 Helper 类

本文介绍如何在Android开发中使用DevUtils库的DevHelper类进行链式调用,提升代码的可读性和简洁性。
摘要由CSDN通过智能技术生成

DevUtils Github

方法 注释
get 获取单例 DevHelper
viewHelper 获取 ViewHelper
devHelper 获取 DevHelper
postRunnable 在主线程 Handler 中执行任务
removeRunnable 在主线程 Handler 中清除任务
startTimer 运行定时器
closeTimer 关闭定时器
recycle Bitmap 通知回收
saveBitmapToSDCardJPEG 保存图片到 SDCard - JPEG
saveBitmapToSDCardPNG 保存图片到 SDCard - PNG
saveBitmapToSDCardWEBP 保存图片到 SDCard - WEBP
saveBitmapToSDCard 保存图片到 SDCard
addTextChangedListener 添加输入监听事件
removeTextChangedListener 移除输入监听事件
setKeyListener 设置 KeyListener
record 日志记录
cleanInternalCache 清除内部缓存 - path /data/data/package/cache
cleanInternalFiles 清除内部文件 - path /data/data/package/files
cleanInternalDbs 清除内部数据库 - path /data/data/package/databases
cleanInternalDbByName 根据名称清除数据库 - path /data/data/package/databases/dbName
cleanInternalSp 清除内部 SP - path /data/data/package/shared_prefs
cleanExternalCache 清除外部缓存 - path /storage/emulated/0/android/data/package/cache
cleanCustomDir 清除自定义路径下的文件, 使用需小心请不要误删, 而且只支持目录下的文件删除
cleanApplicationData 清除本应用所有的数据
copyText 复制文本到剪贴板
copyUri 复制 URI 到剪贴板
copyIntent 复制意图到剪贴板
notifyMediaStore 通知刷新本地资源
insertImageIntoMediaStore 添加图片到系统相册 ( 包含原图、相册图, 会存在两张 ) - 想要一张, 直接调用 notifyMediaStore()
insertVideoIntoMediaStore 添加视频到系统相册
insertIntoMediaStore 保存到系统相册
showDialog 显示 Dialog
closeDialog 关闭 Dialog
closeDialogs 关闭多个 Dialog
closePopupWindow 关闭 PopupWindow
closePopupWindows 关闭多个 PopupWindow
autoCloseDialog 自动关闭 dialog
autoClosePopupWindow 自动关闭 PopupWindow
openKeyboard 打开软键盘
closeKeyboard 关闭软键盘
closeKeyBoardSpecial 关闭软键盘 - 特殊处理
judgeView 设置某个 View 内所有非 EditText 的子 View OnTouchListener 事件
registerSoftInputChangedListener 注册软键盘改变监听
registerSoftInputChangedListener2 注册软键盘改变监听
applyLanguage 修改系统语言 (APP 多语言, 单独改变 APP 语言 )
setOnClicks 设置点击事件
setOnLongClicks 设置长按事件
addTouchArea 增加控件的触摸范围, 最大范围只能是父布局所包含的的区域
cancelAllNotification 移除通知 - 移除所有通知 ( 只是针对当前 Context 下的 Notification)
cancelNotification 移除通知 - 移除标记为 id 的通知 ( 只是针对当前 Context 下的所有 Notification)
notifyNotification 进行通知
saveAssetsFormFile 获取 Assets 资源文件数据并保存到本地
saveRawFormFile 获取 Raw 资源文件数据并保存到本地
setWindowSecure 设置禁止截屏
setFullScreen 设置屏幕为全屏
setLandscape 设置屏幕为横屏
setPortrait 设置屏幕为竖屏
toggleScreenOrientation 切换屏幕方向
forceGetViewSize 在 onCreate 中获取视图的尺寸 - 需回调 onGetSizeListener 接口, 在 onGetSize 中获取 View 宽高
vibrate 震动
cancel 取消震动
closeIO 关闭 IO
closeIOQuietly 安静关闭 IO
getNetTime 获取网络时间 - 默认使用百度链接
waitForEndAsyn 设置等待一段时间后, 通知方法 ( 异步 )
waitForEnd 设置等待一段时间后, 通知方法 ( 同步 )
setAnimationListener 设置动画事件
package dev.utils.app.helper;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Dialog;
import android.app.Notification;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Handler;
import android.support.annotation.IntRange;
import android.support.annotation.RawRes;
import android.support.v4.app.DialogFragment;
import android.text.TextWatcher;
import android.text.method.KeyListener;
import android.view.View;
import android.view.animation.Animation;
import android.widget.EditText;
import android.widget.PopupWindow;

import java.io.Closeable;
import java.io.File;
import java.util.Locale;

import dev.utils.app.AnalysisRecordUtils;
import dev.utils.app.CleanUtils;
import dev.utils.app.ClickUtils;
import dev.utils.app.ClipboardUtils;
import dev.utils.app.ContentResolverUtils;
import dev.utils.app.DialogUtils;
import dev.utils.app.EditTextUtils;
import dev.utils.app.HandlerUtils;
import dev.utils.app.KeyBoardUtils;
import dev.utils.app.LanguageUtils;
import dev.utils.app.ListenerUtils;
import dev.utils.app.NotificationUtils;
import dev.utils.app.ResourceUtils;
import dev.utils.app.ScreenUtils;
import dev.utils.app.SizeUtils;
import dev.utils.app.VibrationUtils;
import dev.utils.app.anim.AnimationUtils;
import dev.utils.app.assist.manager.TimerManager;
import dev.utils.app.image.BitmapUtils;
import dev.utils.app.image.ImageUtils;
import dev.utils.common.CloseUtils;
import dev.utils.common.HttpURLConnectionUtils;
import dev.utils.common.assist.TimeKeeper;

/**
 * detail: Dev 工具类链式调用 Helper 类
 * @author Ttt
 * <pre>
 *     通过 DevApp 工具类快捷实现
 *     <p></p>
 *     DevApp Api
 *     @see <a href="https://github.com/afkT/DevUtils/blob/master/lib/DevApp/README.md"/>
 * </pre>
 */
public final class DevHelper {
   

    // TimeKeeper
    private TimeKeeper mTimeKeeper = new TimeKeeper();
    // DevHelper
    private static final DevHelper HELPER = new DevHelper();

    /**
     * 获取单例 DevHelper
     * @return {@link DevHelper}
     */
    public static DevHelper get() {
   
        return HELPER;
    }

    // ==========
    // = Helper =
    // ==========

    /**
     * 获取 ViewHelper
     * @return {@link ViewHelper}
     */
    public ViewHelper viewHelper() {
   
        return ViewHelper.get();
    }

    /**
     * 获取 DevHelper
     * @return {@link DevHelper}
     */
    public DevHelper devHelper() {
   
        return this;
    }

    // ===========
    // = Handler =
    // ===========

    /**
     * 在主线程 Handler 中执行任务
     * @param runnable 可执行的任务
     * @return {@link DevHelper}
     */
    public DevHelper postRunnable(final Runnable runnable) {
   
        HandlerUtils.postRunnable(runnable);
        return this;
    }

    /**
     * 在主线程 Handler 中执行延迟任务
     * @param runnable    可执行的任务
     * @param delayMillis 延迟时间
     * @return {@link DevHelper}
     */
    public DevHelper postRunnable(final Runnable runnable, final long delayMillis) {
   
        HandlerUtils.postRunnable(runnable, delayMillis);
        return this;
    }

    /**
     * 在主线程 Handler 中执行延迟任务
     * @param runnable    可执行的任务
     * @param delayMillis 延迟时间
     * @param number      轮询次数
     * @param interval    轮询时间
     * @return {@link DevHelper}
     */
    public DevHelper postRunnable(final Runnable runnable, final long delayMillis, final int number, final int interval) {
   
        HandlerUtils.postRunnable(runnable, delayMillis, number, interval);
        return this;
    }

    /**
     * 在主线程 Handler 中执行延迟任务
     * @param runnable      可执行的任务
     * @param delayMillis   延迟时间
     * @param number        轮询次数
     * @param interval      轮询时间
     * @param onEndListener 结束通知
     * @return {@link DevHelper}
     */
    public DevHelper postRunnable(final Runnable runnable, final long delayMillis, final int number, final int interval, final HandlerUtils.OnEndListener onEndListener) {
   
        HandlerUtils.postRunnable(runnable, delayMillis, number, interval, onEndListener);
        return this;
    }

    /**
     * 在主线程 Handler 中清除任务
     * @param runnable 需要清除的任务
     * @return {@link DevHelper}
     */
    public DevHelper removeRunnable(final Runnable runnable) {
   
        HandlerUtils.removeRunnable(runnable);
        return this;
    }

    // ================
    // = TimerManager =
    // ================

    /**
     * 运行定时器
     * @param timer {@link TimerManager.AbsTimer}
     * @return {@link DevHelper}
     */
    public DevHelper startTimer(final TimerManager.AbsTimer timer) {
   
        if (timer != null) timer.startTimer();
        return this;
    }

    /**
     * 关闭定时器
     * @param timer {@link TimerManager.AbsTimer}
     * @return {@link DevHelper}
     */
    public DevHelper closeTimer(final TimerManager.AbsTimer timer) {
   
        if (timer != null) timer.closeTimer();
        return this;
    }

    // ===============
    // = BitmapUtils =
    // ===============

    /**
     * Bitmap 通知回收
     * @param bitmap 待回收图片
     * @return {@link DevHelper}
     */
    public DevHelper recycle(final Bitmap bitmap) {
   
        BitmapUtils.recycle(bitmap);
        return this;
    }

    // =========&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值