2013-04-22 11 views
1

В настоящее время я создаю приложение, которое отображает цифровые часы в случайном месте onCreate. То, что я хочу, чтобы приложение выполняло, - это просто повторять эту функцию каждую минуту. У кого-нибудь есть идеи, как это можно реализовать?Как я могу заставить приложение повторять эту функцию каждую минуту?

public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    TextView textView = (TextView) findViewById(R.id.digitalClock1); 
    Random r = new Random(); 

    int x = r.nextInt(350 - 100); 
    int y = r.nextInt(800 - 100); 

    textView.setX(x); 
    textView.setY(y); 
} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

}

+0

асинхронное задачу в приложении –

+0

лучше сделать задачу в отдельной функции и вызвать его туда, куда вы хотите –

ответ

1

Использование Handler

Handler handler = new Handler(); 
     handler.postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       Random r = new Random(); 

       int x = r.nextInt(350 - 100); 
       int y = r.nextInt(800 - 100); 

       textView.setX(x); 
       textView.setY(y); 
      } 
     }, 1000 * 60); 
+0

меня постоянно говорят, что вы не можете обновите пользовательский интерфейс из этого потока. Люди говорят, что мне нужно использовать AsyncTask. Это правильно? – rebble

+0

Нет, потому что этот обработчик работает на UI Looper –

+0

Где находится петлитель пользовательского интерфейса? – rebble

Смежные вопросы