私はJavaプログラミングにはとても新しいので、スレッドのwhileループに問題があります。ここでは、whileループを使用する例を紹介します。スレッドでアプリケーションがクラッシュする
public class MainActivity extends AppCompatActivity {
private boolean running = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView text = (TextView)findViewById(R.id.textView);
new Thread(new Runnable() {
@Override
public void run() {
while (running) {
try{Thread.sleep(1000);}
catch(InterruptedException e){}
running = false;
text.setText("false!");
running = true;
try{Thread.sleep(1000);}
catch(InterruptedException e){}
text.setText("True!");
}
}
}).start();
}
}
実行をfalseに設定すると、スレッドは実行されず、アプリケーションには何も表示されません。実行がtrueに設定されていると、アプリケーションは の後にクラッシュします。text.setText( "false!");
ありがとうございました!あなたがスレッドからのTextViewにアクセスすることはできません
メインスレッドからビューオブジェクトを変更することができます。それは、UIスレッドの外にUIを更新することはできませんあなたに言う必要があります – AxelH
logcatを見て、stacktraceを投稿 – Jens
この回答(http://stackoverflow.com/a/5185140/4391450)は最も簡単です – AxelH