java.lang.IllegalStateException:在死线程android上发送数据

java.lang.IllegalStateException:在死线程android上发送数据,java,android,multithreading,Java,Android,Multithreading,我正在尝试使用JSON解析获取数据库中的数据,它在emulator中运行良好,但当我在手机中访问此apk时,它会显示一个空白页面。错误是“在死线程上发送数据”。我如何解决它?有什么帮助吗? 数据完全正常,应用程序在模拟器上运行良好,但在手机上它并没有从数据库中获取数据。所以,我通过将手机连接到android studio继续执行,我得到了这个错误。 代码: package com.example.mi.mikpiadmin; 导入android.app.ProgressDialog; 导入and

我正在尝试使用JSON解析获取数据库中的数据,它在emulator中运行良好,但当我在手机中访问此apk时,它会显示一个空白页面。错误是“在死线程上发送数据”。我如何解决它?有什么帮助吗? 数据完全正常,应用程序在模拟器上运行良好,但在手机上它并没有从数据库中获取数据。所以,我通过将手机连接到android studio继续执行,我得到了这个错误。 代码:

package com.example.mi.mikpiadmin;
导入android.app.ProgressDialog;
导入android.content.Intent;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.support.v7.app.AppActivity;
导入android.util.Log;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.ListAdapter;
导入android.widget.ListView;
导入android.widget.simpledapter;
导入org.json.JSONArray;
导入org.json.JSONException;
导入org.json.JSONObject;
导入java.util.ArrayList;
导入java.util.HashMap;
公共类存储\ KPI扩展AppCompativeActivity实现ListView.OnItemClickListener{
私人优先助手优先助手;
列表视图列表视图1;
公共静态最终字符串URL\u获取\u问题=”http://dcoder.in/mi/two.php";
公共静态最终字符串标记_JSON_ARRAY=“result”;
公共静态最终字符串标记\u ID=“ID”;
公共静态最终字符串TAG_PARAMETER=“PARAMETER”;
公共静态最终字符串TAG_eaccessment=“acccessment”;
公共静态最终字符串标记\u TARGET\u WEEKLY=“TARGET\u WEEKLY”;
公共静态最终字符串TAG\u TARGET\u MONTHLY=“TARGET\u MONTHLY”;
公共静态最终字符串标记“每项成就=“每项成就”;
私有字符串JSON_发布_字符串;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u store\u kpi);
preferenceHelper=新的preferenceHelper(此);
listView1=(ListView)findViewById(R.id.list\u view\u store\u kpi);
listView1.setOnItemClickListener(此);
getJSON();
}
私人雇员(){
JSONObject JSONObject=null;
ArrayList=新建ArrayList();
试一试{
jsonObject=新的jsonObject(JSON_发布_字符串);
JSONArray result=jsonObject.getJSONArray(TAG_JSON_数组);

对于(int i=0;i尝试从emulator卸载应用程序并重新安装,您也将面临同样的问题。但是为什么?问题是什么?数据库安装程序可能没有连接,并且工作正常。请添加stacktrace。顺便说一句,无需调用super.onPostExecute和super.onPreExecutety从emulator卸载应用程序并重新安装I’我也会面临同样的问题。但是为什么?问题是什么?数据库安装程序可能没有连接数据库并且工作正常。请添加stacktrace。顺便说一句,不需要调用super.onPostExecute和super.onPreExecute
package com.example.mi.mikpiadmin;

import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.HashMap;

public class Store_KPI extends AppCompatActivity implements ListView.OnItemClickListener {
    private PreferenceHelper preferenceHelper;
    ListView listView1;
    public static final String URL_GET_ISSUE = "http://dcoder.in/mi/two.php";

    public static final String TAG_JSON_ARRAY="result";
    public static final String TAG_ID = "id";
    public static final String TAG_PARAMETER = "parameter";
    public static final String TAG_ACHIEVEMENT = "achievement";
    public static final String TAG_TARGET_WEEKLY = "target_weekly";
    public static final String TAG_TARGET_MONTHLY = "target_monthly";
    public static final String TAG_PER_ACHIEVEMENT = "per_achievement";


    private String JSON_ISSUE_STRING;
  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_store_kpi);
      preferenceHelper = new PreferenceHelper(this);
        listView1=(ListView)findViewById(R.id.list_view_store_kpi) ;
        listView1.setOnItemClickListener(this);
        getJSON();

    }


    private void showEmployee(){
        JSONObject jsonObject = null;
        ArrayList<HashMap<String,String>> list = new ArrayList<HashMap<String, String>>();
        try {
            jsonObject = new JSONObject(JSON_ISSUE_STRING);
            JSONArray result = jsonObject.getJSONArray(TAG_JSON_ARRAY);

            for(int i = 0; i<result.length(); i++){
                JSONObject jo = result.getJSONObject(i);
                String parameter = jo.getString(TAG_PARAMETER);
                String achievement = jo.getString(TAG_ACHIEVEMENT);
                String target = jo.getString(TAG_TARGET_WEEKLY);
                String mtarget = jo.getString(TAG_TARGET_MONTHLY);
                String per_achievement = jo.getString(TAG_PER_ACHIEVEMENT);

                HashMap<String,String> employees = new HashMap<>();
                employees.put(TAG_PARAMETER,parameter);
                employees.put(TAG_ACHIEVEMENT,achievement);
                employees.put(TAG_TARGET_WEEKLY,target);
                employees.put(TAG_TARGET_MONTHLY,mtarget);
                employees.put(TAG_PER_ACHIEVEMENT,per_achievement);
                list.add(employees);

            }

        } catch (JSONException e) {
            e.printStackTrace();
        }

        ListAdapter adapter = new SimpleAdapter(
                Store_KPI.this, list, R.layout.list_item,
                new String[]{TAG_PARAMETER,TAG_ACHIEVEMENT,TAG_TARGET_WEEKLY,TAG_TARGET_MONTHLY,TAG_PER_ACHIEVEMENT},
                new int[]{R.id.id, R.id.name, R.id.feedback,R.id.parmeter,R.id.target});
        listView1.setAdapter(adapter);
        ((SimpleAdapter) listView1.getAdapter()).notifyDataSetChanged();

    }


    private void getJSON(){
        class GetJSON extends AsyncTask<Void,Void,String> {

            private ProgressDialog loading;
            @Override
            protected void onPreExecute() {
                super.onPreExecute();
                loading = ProgressDialog.show(Store_KPI.this,"Fetching Data","Wait...",false,false);
            }

            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                loading.dismiss();
                JSON_ISSUE_STRING = s;
                showEmployee();
            }

            @Override
            protected String doInBackground(Void... params) {
                RequestHandler rh = new RequestHandler();
                String s  = rh.sendGetRequest(URL_GET_ISSUE+"?store="+preferenceHelper.getStore());

                Log.d("123",s);
                return s;
            }
        }
        GetJSON gj = new GetJSON();
        gj.execute();
    }

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

        Intent intent = new Intent(this, Store_KPI.class);
        HashMap<String,String> map =(HashMap)parent.getItemAtPosition(position);

        //String empId = map.get(Config.TAG_ID).toString();
        //intent.putExtra(Config.EMP_ID,empId);
        startActivity(intent);
    }


}


Logcat
09-11 12:41:57.852 30353-30353/? D/AndroidRuntime: Calling main entry com.android.commands.pm.Pm
09-11 12:41:57.860 30353-30363/? W/MessageQueue: Handler (android.os.Handler) {bda2ab} sending message to a Handler on a dead thread
                                                 java.lang.IllegalStateException: Handler (android.os.Handler) {bda2ab} sending message to a Handler on a dead thread
                                                     at android.os.MessageQueue.enqueueMessage(MessageQueue.java:543)
                                                     at android.os.Handler.enqueueMessage(Handler.java:643)
                                                     at android.os.Handler.sendMessageAtTime(Handler.java:612)
                                                     at android.os.Handler.sendMessageDelayed(Handler.java:582)
                                                     at android.os.Handler.post(Handler.java:338)
                                                     at android.os.ResultReceiver$MyResultReceiver.send(ResultReceiver.java:57)
                                                     at com.android.internal.os.IResultReceiver$Stub.onTransact(IResultReceiver.java:58)
                                                     at android.os.Binder.execTransact(Binder.java:565)
09-11 12:41:57.861 30353-30353/? I/art: System.exit called, status: 0
09-11 12:41:57.861 30353-30353/? I/AndroidRuntime: VM exiting with result code 0.
09-11 12:43:26.885 1579-1586/? I/art: Background sticky concurrent mark sweep GC freed 25454(2MB) AllocSpace objects, 2(136KB) LOS objects, 16% free, 14MB/17MB, paused 2.151ms total 142.176ms
09-11 12:46:48.997 1355-1573/? D/MDnsDS: MDnsSdListener::Monitor poll timed out
09-11 12:46:48.997 1355-1573/? D/MDnsDS: Going to poll with pollCount 1

                                         --------- beginning of system
09-11 12:46:56.827 1579-1628/? D/ConnectivityService: NetworkAgentInfo [MOBILE (LTE) - 100] validation failed
09-11 12:50:54.788 1579-1586/? I/art: Background sticky concurrent mark sweep GC freed 30451(3MB) AllocSpace objects, 4(224KB) LOS objects, 19% free, 13MB/17MB, paused 1.593ms total 146.983ms
09-11 12:58:17.038 1579-1628/? D/ConnectivityService: NetworkAgentInfo [MOBILE (LTE) - 100] validation failed
09-11 13:00:02.319 1579-1624/? D/WifiNative-HAL: Failing getSupportedFeatureset because HAL isn't started
09-11 13:00:02.320 1579-1595/? E/BluetoothAdapter: Bluetooth binder is null
09-11 13:00:02.320 1579-1595/? E/BatteryStatsService: no controller energy info supplied
09-11 13:00:02.322 1579-1595/? E/KernelCpuSpeedReader: Failed to read cpu-freq: /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state (No such file or directory)
09-11 13:00:02.322 1579-1595/? E/KernelUidCpuTimeReader: Failed to read uid_cputime: /proc/uid_cputime/show_uid_stat (No such file or directory)
09-11 13:00:02.323 1579-1595/? E/BatteryStatsService: modem info is invalid: ModemActivityInfo{ mTimestamp=0 mSleepTimeMs=0 mIdleTimeMs=0 mTxTimeMs[]=[0, 0, 0, 0, 0] mRxTimeMs=0 mEnergyUsed=0}
09-11 13:00:12.608 1579-1579/? I/EntropyMixer: Writing entropy...
09-11 13:00:51.190 23018-23055/? D/EGL_emulation: eglMakeCurrent: 0xaab05720: ver 2 0 (tinfo 0xaab03740)
09-11 13:00:51.399 1579-1613/? I/ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10200000 cmp=com.android.launcher3/.Launcher (has extras)} from uid 1000 on display 0
09-11 13:00:51.400 1346-1369/? W/audio_hw_generic: Not supplying enough data to HAL, expected position 2278264 , only wrote 2278080
09-11 13:00:51.424 1304-1338/? D/gralloc_ranchu: gralloc_alloc: Creating ashmem region of size 2650112


                                                 [ 09-11 13:00:51.432  1579: 1613 D/         ]
                                                 HostConnection::get() New Host Connection established 0x9a6e7d40, tid 1613


                                                 [ 09-11 13:00:51.433  1579: 1613 W/         ]
                                                 Unrecognized GLES max version string in extensions: ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_native_sync_v2 ANDROID_EMU_dma_v1 
09-11 13:00:51.467 27945-27974/? D/EGL_emulation: eglMakeCurrent: 0xa8270320: ver 2 0 (tinfo 0xa820a7e0)
09-11 13:00:51.592 1985-2257/? D/EGL_emulation: eglMakeCurrent: 0xaab05480: ver 2 0 (tinfo 0xaab03660)
09-11 13:00:52.091 1985-2257/? W/OpenGLRenderer: Incorrectly called buildLayer on View: ShortcutAndWidgetContainer, destroying layer...
09-11 13:00:54.627 1346-1370/? W/audio_hw_generic: Not supplying enough data to HAL, expected position 2585797 , only wrote 2432880
09-11 13:01:00.022 23018-23055/? D/EGL_emulation: eglMakeCurrent: 0xaab05720: ver 2 0 (tinfo 0xaab03740)
09-11 13:01:00.049 1579-1592/? I/ProcessStatsService: Prepared write state in 7ms
09-11 13:01:00.073 1579-1591/? I/ProcessStatsService: Pruning old procstats: /data/system/procstats/state-2017-09-07-13-05-30.bin