小编Moh*_*fiz的帖子

URL验证工作正常,但保持连接并限制任何进一步的请求

public class UrlVarificationTask extends AsyncTask<Void, Void, Integer> {

    private String url;
    private UrlVarificationDelegate delegate;
    private HttpURLConnection huc;

    public UrlVarificationTask(String url, UrlVarificationDelegate delegate) {
        this.url = url;
        this.delegate = delegate;
    }

    @Override
    protected void onPreExecute() {

        super.onPreExecute();
    }

    @Override
    protected Integer doInBackground(Void... params) {
        int responseCode = 0;
        try {
            System.setProperty("http.keepAlive", "false");
            URL u = new URL(url);
            huc = (HttpURLConnection) u.openConnection();
            huc.setRequestMethod("HEAD");
            huc.connect();
            responseCode = huc.getResponseCode();

        } catch (MalformedURLException mal) {
            responseCode = -555;
        } catch (IOException io) {
            responseCode = …
Run Code Online (Sandbox Code Playgroud)

android http http-headers url-validation

5
推荐指数
1
解决办法
321
查看次数

Android:在ContentProvider中处理非常大的数据集以避免内存限制

我使用a ContentProvider来查询数据库并返回一个Cursor用于CursorLoader:

ItemsActivity:

public class ItemsActivity extends SherlockActivity implements LoaderCallbacks<Cursor> {

    @Override
    public void onCreate(Bundle savedInstance) {
        ....
        getSupportLoaderManager().initLoader(LOADER_ID, null, this);
        ...
    }

    @Override
    public Loader<Cursor> onCreateLoader(int loaderId, Bundle bundle) {
        return new CursorLoader(getApplicationContext(), itemsListUri, ...); 
    }

    ...
}
Run Code Online (Sandbox Code Playgroud)

ItemsContentProvider:

public Cursor query(Uri uri, String[] projection, String selection, ...) {
    SqliteQueryBuilder builder = new SqliteQueryBuilder();
    builder.setTables(ItemsTable.NAME);
    return builder.query(db, projection, selection, ...);
}
Run Code Online (Sandbox Code Playgroud)

活动有一个ListView,我使用CursorAdapter(通过更新LoaderCallbacks)来表示光标内的数据.

这工作正常,直到我需要查找大型数据集中的项目(例如,超过30,000行).观察日志我发现查找超出了内存限制,并且从结果游标中删除了一些行.

我的问题:在使用这样的游标时,处理非常大的数据集的最佳方法是什么?

我目前的解决方案是将SQLite查询ContentProvider拆分为具有偏移和限制的查询序列,然后使用MergeCursor …

sqlite android android-contentprovider android-cursorloader

2
推荐指数
1
解决办法
6946
查看次数