Android 8.1 Launcher3实现动态指针时钟
本文主要实现功能,可能有不合理的地方
首先创建一个实现功能的工具里,直接上代码:
import android.content.Context;
import android.graphics.Bitmap;
import android.os.Handler;
import android.os.Message;
import com.android.launcher3.ItemInfo;
import com.android.launcher3.LauncherSettings;
import com.android.launcher3.ShortcutInfo;
import com.android.launcher3.util.LogUtil;
public class DeskClockUtil {
private OnDeskClockIconChangeListener mListener;
private ItemInfo mItemInfo;
private boolean mIsResume;
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what == 100) {
Message msg1 = new Message();
msg1.what = 100;
msg1.obj = msg.obj;
mHandler.sendMessageDelayed(msg1, 60000);
if (mListener != null && mItemInfo != null) {
mListener.onChange(IconUtil.getDeskClockIcon((Context) msg.obj), mItemInfo);
}
}
}
};
private static DeskClockUtil sInstance;
private DeskClockUtil() {
}
public static DeskClockUtil getInstance() {
if (sInstance == null) {
sInstance = new DeskClockUtil();
}
return sInstance;
}
private void refresh(Context context) {
if (mListener != null && mItemInfo != null) {
mListener.onChange(IconUtil.getDeskClockIcon(context), mItemInfo);
}
if (mHandler.hasMessages(