From 57e16d05ef4924a480a5895cdb485556cc820e9b Mon Sep 17 00:00:00 2001 From: wjc <1243177876@qq.com> Date: 星期一, 05 六月 2023 09:45:53 +0800 Subject: [PATCH] Merge branch 'wjc' --- app/src/main/java/com/hdl/photovoltaic/other/HdlThreadLogic.java | 93 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 93 insertions(+), 0 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlThreadLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlThreadLogic.java new file mode 100644 index 0000000..73fe38b --- /dev/null +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlThreadLogic.java @@ -0,0 +1,93 @@ +package com.hdl.photovoltaic.other; + +import android.app.Dialog; +import android.content.Context; +import android.os.Handler; +import android.os.Looper; +import android.widget.Toast; + +import androidx.appcompat.app.AlertDialog; + +import com.hdl.photovoltaic.enums.ShowErrorMode; + +/** + * 绾跨▼閫昏緫 + */ +public class HdlThreadLogic { + private static final Handler handler = new Handler(Looper.getMainLooper()); + + + /** + * 鍒囨崲鍥炰富绾跨▼ + * + * @param run 鍥炶皟 + * @param context 涓婁笅鏂�(涓嶉渶瑕佸脊妗嗗~null) + * @param showErrorMode 鏄惁鏄剧ず閿欒(涓嶉渶瑕佹樉绀洪敊璇~null) + */ + public static void runMainThread(Runnable run, Context context, ShowErrorMode showErrorMode) { + try { + if (Looper.myLooper() == Looper.getMainLooper()) { + run.run(); + } else { + handler.post(run); + } + } catch (Exception e) { + exception(e, showErrorMode, context); + } + } + + + /** + * 瀛愮嚎绋� + * + * @param run 鍥炶皟 + * @param context 涓婁笅鏂�(涓嶉渶瑕佸脊妗嗗~null) + * @param showErrorMode 鏄惁鏄剧ず閿欒(涓嶉渶瑕佸~null) + */ + public static void runThread(Runnable run, Context context, ShowErrorMode showErrorMode) { + + new Thread(new Runnable() { + @Override + public void run() { + try { + run.run(); + } catch (Exception e) { + exception(e, showErrorMode, context); + } + } + }).start(); + + } + + + /** + * @param e 寮傚父淇℃伅绫� + * @param context 涓婁笅鏂�(涓嶉渶瑕佸脊妗嗗~null) + * @param showErrorMode 鏄惁鏄剧ず閿欒(涓嶉渶瑕佸~null) + */ + private static void exception(Exception e, ShowErrorMode showErrorMode, Context context) { + if (showErrorMode == null || context == null || e == null) { + return; + } + if (showErrorMode == ShowErrorMode.NO) { + return; + } + + handler.post(new Runnable() { + @Override + public void run() { + Dialog alertDialog = new AlertDialog.Builder(context). + setTitle("鎶辨瓑绋嬪簭鍑虹幇閿欒浜�,鐐瑰嚮\"纭\"鑾峰彇鏇村璇︾粏淇℃伅."). + setMessage(e.getMessage()). + create(); + alertDialog.show(); + //鎻愮ず +// AlertDialog alertDialog = new AlertDialog(context, androidx.fragment.R.style.TextAppearance_Compat_Notification); +// alertDialog.setTitle("鎶辨瓑绋嬪簭鍑虹幇閿欒浜�"); +// alertDialog.show(); +// Toast.makeText(context, "鎶辨瓑绋嬪簭鍑虹幇閿欒浜�", Toast.LENGTH_SHORT).show(); + + } + }); + } +} -- Gitblit v1.8.0