当前位置: 首页 > 知识库问答 >
问题:

java.lang.RuntimeException:仅在小米设备中执行doInBackground()时引起

景景胜
2023-03-14

Google play商店仅在小米设备上显示崩溃(我无法复制)。请在下面找到崩溃日志。我也曾试图在小米设备上重现这次崩溃,但无法重现。

orker.run运行时异常:在xecutor.java:588AsyncTask$java.lang.(AsyncThread.run)在hread.java:818FutureTjava.lang.完成(FutureTin.betterbutter.android.emoji.)在sync.doFutureTarse.java:30异常(FutureTin.betterbutter.android.emoji.)在sync.doFutureTarse.java:19(FutureTandroid.os.)在android.os.AsyncTask$SerialExecitor$1.run(AsyncTask.java:234)在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)在java.util.concurrent.ThreadPoolExecitor$Wjava.lang.(ThreadPoolEandroid.os.)在3.doneTask.java:309(Tjava.util.concurrent.)引起的:ask.finishExceptionInSynalizerError:在ask.java:354EmojiParse$ParseAjava.util.concurrent.背景(EmojiPask.set)在ask.java:223EmojiParse$ParseAjava.util.concurrent.背景(EmojiPask.run)在ask.java:242AsyncTask2 dollars. call(AsyncTask. java: 295)在java. util. con(FutureTask. java: 237)

这是我的代码:

public class EmojiParse {

    public void parse(JSONObject jsonObject) {
        new ParseAsync().execute(jsonObject);
    }

    public class ParseAsync extends AsyncTask<JSONObject, Void, Void> {

        @Override
        protected Void doInBackground(JSONObject... params) {
            JSONObject jsonObject = params[0];
            try {
                JSONArray jsonArray = jsonObject.getJSONArray("emojis");
                for (int i = 0; i < jsonArray.length(); ++i) {
                    JSONObject object = jsonArray.getJSONObject(i);
                    String text = object.getString("text");
                    String code = object.getString("code");
                    String surrogates = StringEscapeUtils.unescapeJava(object.getString("surrogates"));


                    EmojiMap emojiMap = new EmojiMap();


                    emojiMap.hashSet.add(code);
                    emojiMap.displayMap.put(text, surrogates);
                    emojiMap.reverseMap.put(surrogates, text);

                }
            } catch (JSONException e) {
                e.printStackTrace();
            } catch (Exception e1) {
                e1.printStackTrace();
            }
            return null;
        }
    }

}

共有1个答案

魏鹤轩
2023-03-14

在小米手机的后台运行是受限制的

设置-

这是因为小米默认为每个应用程序使用Baterry优化。

例如在这里检查此链接

使用给定代码移动到设置页面

Intent intent = new Intent();
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", getPackageName(), null);
intent.setData(uri);
startActivity(intent);

取消限制。

 类似资料: