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();
|
|
}
|
});
|
}
|
}
|