反正是否有提高此代码的性能?

时间:2017-09-09 12:09:38

标签: android sqlite webview android-sqlite

我的第一个应用。我正在其中实现搜索功能。

到目前为止我已经这样做了。

数据库部分:

String sqlStr = "SELECT Book_Name, PlainEng_Text, PlainArab_Text,  REF, Had_Number, Book_Number, Collection_ID FROM Had_Table WHERE Collection_ID = 1 AND ID IN " +
                "(SELECT ID FROM Had_Virtual_Table WHERE Hadith_Virtual_Table MATCH ?)";

        //String[] selectionArgs = { QueryString };

        curHadlist = dbHandle.rawQuery(sqlStr, QueryString);

通过快速返回记录似乎工作正常。 在我的一次测试中,它返回了7100多条记录。

我认为以下代码会导致问题:

       while (curHadlist.moveToNext()) {
            curHTags.moveToFirst();
            String HTags = curHTags.getString(0);

            String BookN = curHadlist.getString(0);

            if (activityID == 2) {
                AB.setSubtitle(BookN);
            }

            String EngH = curHadlist.getString(1);
            String ArH = curHadlist.getString(2);
            String RefH = curHadlist.getString(3);
            String HadNum = curHadlist.getString(4);
            Integer BookNum = curHadlist.getInt(5);
            Integer CollectNum = curHadlist.getInt(6);

            hadlist = hadlist + String.format(HTags, HadNum, activityID, BookNum, CollectNum, EngH, ArH, RefH); //2=ID of this activity
        }

在这个循环之后,我返回hadlist,然后像这样使用它:

webViewF.loadDataWithBaseURL("file:///android_asset/", hadlist , "text/html", "UTF-8", null);

问题:我的应用程序在输入搜索字符串(一个返回7100多条记录并且喜欢它的字符串)之后变黑,并且永远不会回来(等待几分钟)。

任何人都可以建议更好的方式来做我想在这里实现的目标。

谢谢。

0 个答案:

没有答案