android sqlite延迟

| 我有这个代码,这是我发现的一个示例,即时消息是新的,并且仍在学习android,因此,我需要一些帮助以了解如何增加读取表的延迟 例如在此代码中,我插入2行,然后读取它们....我想做的是读取第一行并等待5秒钟,例如,然后读取第二行并等待5秒..... ?? ?? 这是代码:
package net.learn2develop.Database;

import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.widget.Toast;

public class DatabaseActivity extends Activity {
    /** Called when the activity is first created. */

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        DBAdapter db = new DBAdapter(this);

        //---add 2 titles---
        db.open();        
        long id;
        id = db.insertTitle(
                \"0470285818\",
                \"java ++ :)\",
                \"someone\");        
        id = db.insertTitle(
                \"047017661X\",
                \"Professional Programming\",
                \"someone2\");
        db.close();

        //---get all titles---
        db.open();
        Cursor c = db.getAllTitles();
        if (c.moveToFirst())
        {
            do {          
                DisplayTitle(c);
            } while (c.moveToNext());
        }
        db.close();

    } 

    public void DisplayTitle(Cursor c)
    {
        Toast.makeText(this, 
                \"id: \" + c.getString(0) + \"\\n\" +
                \"ISBN: \" + c.getString(1) + \"\\n\" +
                \"TITLE: \" + c.getString(2) + \"\\n\" +
                \"PUBLISHER:  \" + c.getString(3),
                Toast.LENGTH_LONG).show();        
    } 

}
    
已邀请:
正确的方法-它不会阻塞您的主线程,因此UI保持响应状态:
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
    // Get new entry
}, 5000);  // 5000 miliseconds
    
您不应在主线程中放置任何长时间运行的函数。 onCreate必须始终快速执行然后返回,否则它们可能会被Android OS作为ANR(应用程序无响应)杀死。 考虑使用TimerTask,让您的查询获得第n条记录,每次递增n。请注意,TimerTask将在线程中运行您的方法,并且您只能从主线程进行UI调用。使用Activty.runOnUiThread()解决此问题。     
将Timer与TimerTask结合使用。在这里查看示例     

要回复问题请先登录注册