2.03.2014 / 18:36 | |
samodelkin Пользователь Сейчас: Offline
Имя: Сергей Откуда: Липецк Регистрация: 05.11.2013
| usb_device, там суть в том,что действие с элементом интерфейса надо делать в главном потоке, который находится в методе onCreate, в другом методе делать нельзя.
|
2.03.2014 / 18:46 | |
samodelkin Пользователь Сейчас: Offline
Имя: Сергей Откуда: Липецк Регистрация: 05.11.2013
| Вот так попробуй: package com.example.myapplicationgame;
import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.widget.TextView;
public class MainActivity extends Activity { static TextView tvInfo;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tvInfo = (TextView) findViewById(R.id.textView); for(int i=0;i<15;i++){ tvInfo.append("\n"+i); pauseTime(1000); } }
public void pauseTime(long p){ long s=System.currentTimeMillis(); while(System.currentTimeMillis()-s<p){ } }
}
Изменено samodelkin (2.03 / 18:48) (всего 1 раз) |
2.03.2014 / 18:49 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| samodelkin, тебе тоже матчасть следовало бы подучить (особенно перед тем, как учить других). Главный поток не находится в методе onCreate, он вообще стартует за его пределами и охватывает кучу методов таких как onCreate, onPause, onDestroy, onBackPressed и т.д. Короче, всё что порождает система для обслуживания интерфейса, есть главный поток, называемый также UI-Thread.
__________________
let live Изменено aNNiMON (2.03 / 18:49) (всего 1 раз) |
2.03.2014 / 18:50 | |
samodelkin Пользователь Сейчас: Offline
Имя: Сергей Откуда: Липецк Регистрация: 05.11.2013
| aNNiMON, ясно.
|
2.03.2014 / 19:00 | |
samodelkin Пользователь Сейчас: Offline
Имя: Сергей Откуда: Липецк Регистрация: 05.11.2013
| Там ошибка была в методе паузы, вот правильный код:
package com.example.myapplicationgame;
import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.widget.TextView;
public class MainActivity extends Activity { static TextView tvInfo;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tvInfo = (TextView) findViewById(R.id.textView); for(int i=0;i<15;i++){ tvInfo.append("\n"+i); pauseTime(1000); } }
public void pauseTime(long p){ long s=System.currentTimeMillis(); while(System.currentTimeMillis()<s+p){ } }
}
|
2.03.2014 / 19:21 | |
samodelkin Пользователь Сейчас: Offline
Имя: Сергей Откуда: Липецк Регистрация: 05.11.2013
| Не работает , странно!!! Как это понимать??? Изменено samodelkin (2.03 / 19:21) (всего 1 раз) |
2.03.2014 / 20:33 | |
usb_device Пользователь Сейчас: Offline
Имя: Денис Откуда: USB Регистрация: 07.01.2013
| когда в коде мы пишем new Thread(new Runnable() { и тд. это аналогично, если бы создавался отдельный класс который реализовал интерфес Runnable, а именно метод run? То есть, иначе говоря это равноправные способы создания потока?
|
2.03.2014 / 21:02 | |
Virus-ON Пользователь Сейчас: Offline
Имя: Макс Откуда: Чернигов Регистрация: 13.10.2011
| Может слоу, но как на счёт Handler'a?
Изменено Virus-ON (2.03 / 21:02) (всего 1 раз) |
2.03.2014 / 21:11 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| usb_device, да, только в нашем случае создаётся анонимный класс.
__________________
let live |