задержка Android - PullRequest
       5

задержка Android

0 голосов
/ 20 апреля 2011

У меня есть этот код, который я нашел в качестве примера, и я новичок и все еще изучаю Android, поэтому, пожалуйста, мне нужна помощь в знании, как добавить задержку при чтении таблицы

например, в этом коде я вставляю 2 строки и затем читаю их .... что я хочу сделать, это прочитать первую строку и подождать, например, 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();        
    } 

}

Ответы [ 3 ]

1 голос
/ 20 апреля 2011

Вы не должны помещать какие-либо длительные функции в основной поток.onCreate всегда должен выполняться быстро, а затем возвращаться, в противном случае они могут быть уничтожены ОС Android как ANR (приложение не отвечает).

Подумайте об использовании TimerTask, запрос должен получить n-ую запись, увеличивая n каждый раз.Помните, что TimerTask будет запускать ваш метод в потоке, и вы можете делать вызовы пользовательского интерфейса только из основного потока.Используйте Activty.runOnUiThread (), чтобы обойти это.

0 голосов
/ 20 апреля 2011

Правильный путь - он не блокирует ваш основной поток, поэтому пользовательский интерфейс остается отзывчивым:

Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
    // Get new entry
}, 5000);  // 5000 miliseconds
0 голосов
/ 20 апреля 2011

Используйте Таймер в сочетании с TimerTask .Смотрите примеры здесь

...