简体   繁体   English

Android.Util.AndroidRuntimeException: <Timeout exceeded getting exception details> 发生了

[英]Android.Util.AndroidRuntimeException: <Timeout exceeded getting exception details> occurred

I am android c# developer beginner and need to work in back ground showing my listview but my code have a load action such as fetching database and convert from byte array to image so I used async task but it hangs and give me this error Unhandled Exception: 我是android c#developer beginner,需要在后台工作,显示我的listview,但我的代码有一个加载操作,如获取数据库和从字节数组转换为图像,所以我使用异步任务,但它挂起并给我这个错误未处理的异常:

Android.Util.AndroidRuntimeException: occurred Android.Util.AndroidRuntimeException:发生了

//this my async class :

public class UpdatePB : AsyncTask<string, string, string>
{
    private Activity context;
    private ProgressDialog progressDialog;

    public List<Advertise_TableItem> GroupLst;
    Dictionary<Advertise_TableItem, List<Replies_TableItem>> ChildLst;
    //  Advertise_HomeScreenAdapter adb;
    public ExpandableListViewAdapter Adapter;
    AbdoService.abdo_service AbdoService;

    //string user_id;
    Context myContext;
    ExpandableListView listview;
    DataTable table;
    public UpdatePB(Activity context, ExpandableListView listview, Context myContext)
    {
        this.context = context;
        this.listview = listview;
        this.myContext = myContext;


    }
    protected override string RunInBackground(string[] @params)
    {
        //System.Threading.Thread.Sleep(3000);

        //adb = new Advertise_HomeScreenAdapter(this, tableItems);
        //listview.Adapter = adb;

        //progressDialog = new ProgressDialog(context);
        //progressDialog.Show();


        AbdoService = new AbdoService.abdo_service();

        GroupLst = new List<Advertise_TableItem>();
        ChildLst = new Dictionary<Advertise_TableItem, List<Replies_TableItem>>();
        if (CrossConnectivity.Current.IsConnected)
        {


            table = AbdoService.selectAllAdvertises().table;

            int I = 0;
            foreach (DataRow item in table.Rows)
            {
                // bitmap = BitmapFactory.DecodeByteArray(AbdoService.GetByteImage(item[1].ToString()).ByteImage, 0, AbdoService.GetByteImage(item[1].ToString()).ByteImage.Length);


                GroupLst.Add(new Advertise_TableItem(item[1].ToString(), item[2].ToString(), item[3].ToString(), item[0].ToString()));
                List<Replies_TableItem> child = new List<Replies_TableItem>();
                //child.Add(new Replies_TableItem("mohammed", "comment 1 "));
                //child.Add(new Replies_TableItem("ahmed", "comment 2 "));
                var childTable = AbdoService.selectReply(item[0].ToString());
                foreach (DataRow childItem in childTable.table.Rows)
                {
                    child.Add(new Replies_TableItem(childItem[1].ToString(), childItem[2].ToString()));
                }
                ChildLst.Add(GroupLst[I], child);

                I++;

            }

        }
        else
        {
            if_connected();
        }



        Adapter = new ExpandableListViewAdapter(myContext, GroupLst, ChildLst);
        ////System.Threading.Thread.Sleep(3000);
        listview.SetAdapter(Adapter);


        for (int i = 0; i < Adapter.GroupCount; i++)
        {
            listview.ExpandGroup(i);
        }

        //listview.GroupClick += Listview_GroupClick;

        //startServices();
        ////RunOnUiThread(() => progressBar.Visibility = ViewStates.Invisible);

        return context.Title;

    }
    public void if_connected()
    {





        var callDialog = new Android.App.AlertDialog.Builder(context);
        callDialog.SetTitle("Notify");
        callDialog.SetMessage("connect internet");
        callDialog.SetNeutralButton("ok", delegate
        {
            context.Finish();
            context.StartActivity(typeof(AllAdvertises));
        });
        callDialog.Show();

    }
    protected override void OnPreExecute()
    {
        progressDialog = new ProgressDialog(context);
        progressDialog.Show();

    }

    //protected override void OnProgressUpdate(params string[] values)
    //{
    //    //mtv.Text = Convert.ToString(values[0]);
    //    //Android.Util.Log.Error("lv==", values[0] + "");
    //    listview.SetAdapter(Adapter);


    //    for (int i = 0; i < Adapter.GroupCount; i++)
    //    {
    //        listview.ExpandGroup(i);
    //    }

    //}
    protected override void OnPostExecute(string result)
    {
        result = context.Title;

        progressDialog.Dismiss();
    }


}
//this is my Activity function oncreate()
protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
        // Set our view from the "main" layout resource
        SetTheme(Resource.Style.AppTheme);
        SetContentView(Resource.Layout.AllAdvertises);

        //progressDialog = new ProgressDialog(this);
        //progressDialog.SetMessage("hiiiiiiiiiiiii");
        //progressDialog.Show();
        //    System.Threading.Thread.Sleep(1000);



        //ProgressBar progressBar = FindViewById<ProgressBar>(Resource.Id.progressBar);

        //RunOnUiThread(() => progressBar.Visibility=ViewStates.Visible);
        //DoSomeWork1(arguments);




        prefs = PreferenceManager.GetDefaultSharedPreferences(this);
        TextView UserName = FindViewById<TextView>(Resource.Id.txtUserName);
        string user_id = prefs.GetString("UserId", "0");
        if (user_id != "0")
        {
            UserName.Text = " Hello " + prefs.GetString("UserName", "0");
        }


        //AbdoService = new AbdoService.abdo_service();

        ////table= b.GetResult();
        ////    //AbdoService.selectAllAdvertisesCompleted += AbdoService_selectAllAdvertisesCompleted;
        ////    //AbdoService.selectAllAdvertisesAsync();
        listview = FindViewById<ExpandableListView>(Resource.Id.EdListView);
        //GroupLst = new List<Advertise_TableItem>();
        //ChildLst = new Dictionary<Advertise_TableItem, List<Replies_TableItem>>();
        //if (CrossConnectivity.Current.IsConnected)
        //{


        //    //table = AbdoService.selectAllAdvertises().table;

        //    int I = 0;
        //    foreach (DataRow item in table.Rows)
        //    {
        //        // bitmap = BitmapFactory.DecodeByteArray(AbdoService.GetByteImage(item[1].ToString()).ByteImage, 0, AbdoService.GetByteImage(item[1].ToString()).ByteImage.Length);


        //        GroupLst.Add(new Advertise_TableItem(item[1].ToString(), item[2].ToString(), item[3].ToString(), item[0].ToString()));
        //        List<Replies_TableItem> child = new List<Replies_TableItem>();
        //        //child.Add(new Replies_TableItem("mohammed", "comment 1 "));
        //        //child.Add(new Replies_TableItem("ahmed", "comment 2 "));
        //        var childTable = AbdoService.selectReply(item[0].ToString());
        //        foreach (DataRow childItem in childTable.table.Rows)
        //        {
        //            child.Add(new Replies_TableItem(childItem[1].ToString(), childItem[2].ToString()));
        //        }
        //        ChildLst.Add(GroupLst[I], child);

        //        I++;

        //    }
        //}
        //else
        //{
        //    if_connected();
        //}
        ////adb = new Advertise_HomeScreenAdapter(this, tableItems);
        ////listview.Adapter = adb;






        //Adapter = new ExpandableListViewAdapter(this, GroupLst, ChildLst);
        UpdatePB uptask = new UpdatePB(this, listview, this);
        uptask.Execute("paramter");
        //uptask.GetResult();
        //listview.SetAdapter(Adapter);
        //for (int i = 0; i < Adapter.GroupCount; i++)
        //{
        //    listview.ExpandGroup(i);
        //}

        listview.GroupClick += Listview_GroupClick;

        startServices();

        //////RunOnUiThread(() => progressBar.Visibility = ViewStates.Invisible);

    }

you can not touch the UI from a background thread so you need to move this line: 您无法从后台线程触摸UI,因此您需要移动此行:

listview.SetAdapter(Adapter);
for (int i = 0; i < Adapter.GroupCount; i++)
 {
      listview.ExpandGroup(i);
 }

from RunInBackground(string[] @params) to OnPostExecute(string result) RunInBackground(string[] @params)OnPostExecute(string result)

also move if_connected(); 也移动if_connected(); from RunInBackground(string[] @params) to OnPostExecute(string result) because if_connected(); RunInBackground(string[] @params)OnPostExecute(string result)因为if_connected(); shows a dialog it can not be run in background 显示一个无法在后台运行的对话框

And add your complete Stack Trace of error to your question because there may be some other errors there in addition to mentioned ones. 并将完整的Stack Trace错误添加到您的问题中,因为除了提到的错误之外,还可能存在其他错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 未处理的异常:Android.Content.Res.Resources + NotFoundException: <Timeout exceeded getting exception details> 发生了 - Unhandled Exception: Android.Content.Res.Resources+NotFoundException: <Timeout exceeded getting exception details> occurred Newtonsoft.Json.JsonSerializationException: <Timeout exceeded getting exception details> 发生了 - Newtonsoft.Json.JsonSerializationException: <Timeout exceeded getting exception details> occurred Xamarin C# 安卓<Timeout exceeded getting exception details> - Xamarin C# Android <Timeout exceeded getting exception details> 在线Web服务超时超过了获取异常详细信息 - Online Webservice Timeout exceeded getting exception details Java.Lang.NoClassDefFoundError:超时超过了获取异常详细信息Xamarin Android - Java.Lang.NoClassDefFoundError: Timeout exceeded getting exception details Xamarin Android Android.Content.ActivityNotFoundException: <Timeout exceeded getting exception details> Xamarin C# - Android.Content.ActivityNotFoundException: <Timeout exceeded getting exception details> Xamarin C# Xamarin.Forms中的超时异常System.Net.WebException: <Timeout exceeded getting exception details> - timeout exception in Xamarin.Forms System.Net.WebException: <Timeout exceeded getting exception details> 客户端在超时异常上超过了sendTimeout - sendTimeout exceeded by the client on Timeout Exception 异常详细信息:System.Web.HttpException:超出最大请求长度 - Exception Details: System.Web.HttpException: Maximum request length exceeded 获取类别名称和方法名称从异常详细信息发生异常 - Get Class Name and Method Name Where Exception Occurred From Exception Details
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM