Я хочу передать данные из Thread
в Activity
(который создал поток).
Так что я делаю, как описано в документации Android :
public class MyActivity extends Activity {
[ . . . ]
// Need handler for callbacks to the UI thread
final Handler mHandler = new Handler();
// Create runnable for posting
final Runnable mUpdateResults = new Runnable() {
public void run() {
updateResultsInUi();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
[ . . . ]
}
protected void startLongRunningOperation() {
// Fire off a thread to do some work that we shouldn't do directly in the UI thread
Thread t = new Thread() {
public void run() {
mResults = doSomethingExpensive();
mHandler.post(mUpdateResults);
}
};
t.start();
}
private void updateResultsInUi() {
// Back in the UI thread -- update our UI elements based on the data in mResults
[ . . . ]
}
}
Здесь мне не хватает только одного - где и как следует определить mResults
, поэтому яможет получить к нему доступ как из Activity
, так и Thread
, а также сможет изменять при необходимости?Если я определю его как final
в MyActivity
, я больше не смогу изменить его в Thread
- как показано в примере ...
Спасибо!