Articles of Многопоточность

Обработчик не может доставить сообщение или Runnable в основной поток

У меня есть приложение с двумя потоками – основной и загрузчик данных. Когда загрузчик данных заканчивается, он помещает объект Runnable в основной поток (как описано в DevGuide), но он никогда не доставляется и не запускается. Вот базовый код: class MyApp extends Application { public void onCreate() { LoaderThread t = new LoaderThread(); t.start(); } private […]

Android (в Scala): StackOverflowError зависит от того, когда начинать тему?

У меня есть эта простая деятельность (в Scala, импорт оммитирован): class TestActivity extends Activity { private val TAG = "TestActivity" private val mHandler = new Handler { override def handleMessage(msg: Message) { Log.d(TAG, "handleMessage") } } private val mThread = new Thread { override def run { mHandler.sendEmptyMessage(0) Thread.sleep(10) run } }.start override def onCreate(savedInstanceState: […]

Количество услуг, влияющих на эффективность приложения

Я использовал 3 службы в своем приложении для Android. 1-й сервис: прослушивание широковещательных приемников. 2nd: В этой службе я использовал Runnable, который запускается каждую секунду, чтобы получить сведения о приложении переднего плана. 3-й: загрузка данных на сервер. Теперь мне нужно разработать проект библиотеки, который обладает функциональными возможностями приложения. Любые службы или получатели, используемые в проекте […]

Android почему это НЕ выбрасывает неправильное исключение потока?

У меня создалось впечатление, что взгляды можно манипулировать только из основного потока … однако почему это НЕ сбой: public class MainActivity extends Activity { TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); tv = new TextView(this); tv.setText("original text"); setContentView(tv); new Thread(new Runnable() { @Override public void run() { tv.setText("trollollolol i should die here but […]

Это ошибка или функция? В некоторых случаях можно получить доступ к потоку пользовательского интерфейса из задачи, не выполняемой в потоке пользовательского интерфейса

Разработчик.android.com говорит: Только объекты, запущенные в потоке пользовательского интерфейса, имеют доступ к другим объектам в этом потоке. Тем не менее, все следующие примеры (случаи A..C) не должны работать, поскольку они пытаются изменить объект в потоке пользовательского интерфейса. Но на самом деле случаи A и B имеют доступ к объекту (TextView) в потоке пользовательского интерфейса. Здесь […]

Что убивается в потоке Android UI

В деятельности я выделяю несколько отдельных потоков. Позже, на одном из этих дочерних потоков, я делаю следующий вызов: ((Activity) context).runOnUiThread(new Runnable() { public void run() { String message = "Exception thrown: Developer mode was enabled while " + "trying to access the app."; throw new RuntimeException(message); } }); Теперь, что еще будет убито вместе с […]

Как я могу сохранить поток подключений в живых? (Нужно ли использовать демона?)

В моем приложении Android используется поток для прослушивания подключения сокетов с ПК, подключенного через USB. В какой-то момент после того, как ПК откроет соединение (в ответ на какое-то событие, управляемое пользователем), я хочу отправить некоторые данные по нему. public void onCreate(Bundle savedInstanceState) { // SNIP: stuff and nonsense connection = new Thread(new ServerThread()); connection.start(); } […]

Задача таймера таймера Android

У меня есть класс, который запускает новые потоки, и они используют обработчик для записи массива в потоке ui, они являются потокобезопасными. Что делать, если я запускаю эти потоки из задачи таймера, они все еще являются потокобезопасными с помощью ui thred? Спасибо!

Количество активных потоков продолжает увеличиваться

Я использую executorService для исключения только одной задачи за раз, используя этот код ` executorService=Executors.newSingleThreadExecutor(); И я использую Thread.activeCount() чтобы получить количество активных потоков, но всякий раз, когда я отправляю выполняемую задачу в службу-исполнитель, количество активных потоков увеличивается на единицу, как это возможно? Я думал, что newSingleThreadExecutor() позволяет выполнять только одну задачу за раз, почему […]

Android BluetoothSocket – Сроки

Я написал API Bluetooth для подключения с внешним аксессуаром. Способ разработки API состоит в том, что существует множество блокирующих вызовов, таких как getTime , setTime , getVolume , setVolume и т. Д. Как это работает, они создают полезную нагрузку для отправки и вызывают метод sendAndReceive() который делает Некоторые подготовительные работы и в конечном итоге делает […]

Intereting Posts