Runtime.getRuntime().exec(cmd)
アプリ内でコマンドを実行しています。実行に時間がかかる(数分)ので、スレッド化しました。しかし、スレッドアプローチでもアプリが途中で中断され、次のメッセージが表示されます:
threadid=3: reacting to signal 3
Wrote stack traces to '/data/anr/traces.txt'
以下は私が使用しているコードです:
Thread thread = new Thread() {
public void run() {
Process process = Runtime.getRuntime().exec(cmd);
//cmd : command to be executed
process.waitFor();
}
};
thread.start();
thread.join();
ここで何が欠けていますか?処理時間が長いためにアプリが中断されないようにするにはどうすればよいですか?
注: AsyncTask などの他のアプローチがあることは知っていますが、この場合は違いはないと思います。(それとも?)