int count = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button start = (Button) findViewById(R.id.start);
start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
String[] cmd = new String[] { "logcat", "-f",Environment.getExternalStorageDirectory()+"/log.txt", "-v", "time" };
Runtime.getRuntime().exec(cmd);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
thread.start();
}
});
Button stop = (Button) findViewById(R.id.stop);
stop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
Runtime.getRuntime().exec("logcat -d");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
Button addLog = (Button) findViewById(R.id.addLog);
addLog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.e("logTag", Integer.toString(count));
count ++ ;
}
});
}
Я хочу, чтобы начать экономить журнал моего приложения с помощью start
кнопку и остановить его с помощью stop
. Кнопка addLog
используется, чтобы увидеть, добавлено ли больше строк в файл log.txt
. Кнопка start
работает правильно, но проблема в том, что она никогда не заканчивается stop
. Даже после нажатия stop
, когда я нажимаю кнопку addLog
и проверяю файл log.txt
, я вижу, что последние строки были добавлены. В чем моя вина?Как остановить исполняемой в данный момент команду
Мне нужно запустить поток, закрыть это мероприятие и совершить экскурсию по другим видам деятельности, затем вернуться и закрыть машину регистрации.
Спасибо, это сработало. Теперь у меня новая проблема. Если пользователь закрывает мое приложение, весь процесс приложения будет уничтожен, но машина регистрации еще находится в сети. И тогда ссылка на объект 'process' теряется, и я не могу остановить поток после повторного открытия моей активности. Вы можете мне помочь? – Mohsen
Это другой вопрос. Закройте это и запустите новый. Не забудьте отметить мой ответ как правильный – Divers