小编Zea*_*per的帖子

Android更快的数据库插入

我正在解析一个包含近20000个标签的巨大的xml,我正在解析它们时将xml中的所有条目保存到我的sqlite数据库中.

但显然xml在没有插入操作的情况下很快被解析,但是当我尝试插入每个值时需要很长时间.(大约10分钟).

数据库插入代码:

for (int i = 0; i < tracksList.size(); i++) {
    dataSource.addTracks(tracksList.get(i));                        
}



public long addTracks(Tracks tracks) {

    long insertId = 0;

    ContentValues values = new ContentValues();
    values.put(TRACKS_ID, tracks.getStrId());
    values.put(TRACKS_ARTISTID, tracks.getStrArtistId());
    values.put(TRACKS_ARTISTNAME, tracks.getStrArtistName());
    values.put(TRACKS_ALBUMNAME, tracks.getStrAlbumName());
    values.put(TRACKS_FILENAME, tracks.getStrFileName());
    values.put(TRACKS_TRACKNAME, tracks.getStrTrackName());

    insertId = database.insert(TRACKS_TABLE, null, values);

    return insertId;
}
Run Code Online (Sandbox Code Playgroud)

有没有其他选择从我的arraylist中获取每个元素并以更快的速度保存它们.

编辑:让它工作,thnx所有..

    database.beginTransaction();
    try {
        //standard SQL insert statement, that can be reused
        SQLiteStatement insert = 
                database.compileStatement("insert into " + TRACKS_TABLE
                    + "(" + TRACKS_ID + "," + TRACKS_ARTISTID
                    + "," …
Run Code Online (Sandbox Code Playgroud)

xml sqlite parsing android

4
推荐指数
1
解决办法
1004
查看次数

Android服务错误到ui

我在我的服务上收到错误/异常,我用它来传输shoutcast.如果生成任何异常,我想在ui线程上显示错误,例如音乐流不起作用.

怎么做,这是我目前的代码.

UI类:

private OnClickListener btnStopListener = new OnClickListener() {
    public void onClick(View v) {

        if (MyService.isRunning()) {

            doUnbindService();
            stopService(new Intent(MainActivity.this, MyService.class));

            btnStop.setBackgroundResource(R.drawable.player_play);

            barLoader.setVisibility(View.GONE);

        } else {

            Intent intent = new Intent(MainActivity.this, MyService.class);

            intent.putExtra("streamUrl", strLinkUrl);

            startService(intent);

            doBindService();

        }

    }
};

void doBindService() {
    bindService(new Intent(this, MyService.class), mConnection,
            Context.BIND_AUTO_CREATE);
    mIsBound = true;

}

void doUnbindService() {
    if (mIsBound) {
        // If we have received the service, and hence registered with it,
        // then now is the time to unregister.
        if (mService …
Run Code Online (Sandbox Code Playgroud)

service user-interface android exception

0
推荐指数
1
解决办法
1343
查看次数

标签 统计

android ×2

exception ×1

parsing ×1

service ×1

sqlite ×1

user-interface ×1

xml ×1