Я переделывая код, чтобы сделать его пригодным для использования с новым RootTools 3.0 (which fixes an important bug):Почему конечная переменная не контролируется?
Один из разделов я переписал выглядят следующим образом, с обратным вызовом классом для лучшей читаемости. Я добавляю размер двух каталогов, чтобы сообщить общей кэш браузера, который может быть очищено:
@Override
protected void onResume() {
super.onResume();
//Refresh views:
try {
//Show browser's cache size:
ShellCommands.getListing("/data/data/com.android.browser/app_databases/", null, new Callback<SumSize>() {
@Override
public void call(SumSize localstore) throws InterruptedException, IOException, TimeoutException, RootDeniedException {
final SumSize total = localstore;
getFirefoxProfiles(new Callback<String>() {
@Override
public void call(String input) throws InterruptedException, IOException, TimeoutException, RootDeniedException {
ShellCommands.getListing(input+"/Cache/", null, new Callback<SumSize>() {
@Override
public void call(SumSize input) {
total.add(input);
((TextView)findViewById(R.id.lblClearBrowser)).setText(total.getReadable());
}
});
}
});
}
});
Немного более сложным, чем это было с .waitforfinish
, но у меня возникают серьезные проблемы в отладке: самый внутренний вызов (SumSize input) работает корректно, но нет способа узнать, что такое сумма при отладке. Является ли это ошибкой в Java с внешними переменными final
? Ошибка в Android? Ошибка в Eclipse?
Что вы можете видеть в 'this'? Может быть, вы можете найти 'this.val $ total' – johnchen902
где ваша точка останова для отладки? – luk2302
@ johnchen902 Вы правы - это 'this.val $ total'. Знаете ли вы, почему он не всплывает при наведении курсора мыши или не отображается с помощью щелчка правой кнопкой мыши? – NoBugs