我有以下代码片段:
..
..
..
Process proc = runTimeObject.exec(new String[]{"su"});
System.out.println("0");
DataOutputStream outputStream = new DataOutputStream(proc.getOutputStream());
//String Sql = "sqlite3 -csv /data/data/com.whatsapp/databases/msgstore.db "SELECT * FROM messages WHERE status<>13 AND key_from_me=0;" > /data/test.csv";
String Sql = "sqlite3 -csv /data/data/com.whatsapp/databases/msgstore.db "SELECT m._id, m.key_remote_jid, m.data, m.media_wa_type, m.media_name FROM messages m, chat_list cl WHERE m.key_remote_jid = cl.key_remote_jid AND m.key_from_me=0 AND cl.unseen_message_count>0 AND m._id>COALESCE(cl.last_read_message_table_id, 0);"";
System.out.println("1");
if (outputStream != null){
System.out.println("2");
outputStream.writeBytes(Sql);
outputStream.flush();
System.out.println("3");
outputStream.writeBytes("exitn");
outputStream.flush();
BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
String line;
while((line = in.readLine()) != null) {
System.out.println(line);
System.out.println("4");
}
System.out.println("5");
}
System.out.println("6");
try {
proc.waitFor();
...
...
...
while 循环显示所有选定的数据,但程序挂起 hier 并且不前进(我没有看到 5(。我是java和Android的新手,不知道如何解决这个问题。请帮助我
您是否在主线程上运行长时间运行的任务?如果阻塞主线程超过几毫秒,则应用程序将被终止。尝试使用 AsyncTask 在后台运行任务。
问题解决了,我已经忘记了选择命令末尾的""。