0

我想在方法结束之前更改首选项活动的可视化以显示消息或进度条。

buttonSave.setOnPreferenceClickListener(new OnPreferenceClickListener() {
            public boolean onPreferenceClick(Preference preference) {  
                buttonSave.setTitle(getString(R.string.loadingWait));//visualization to change before the next function ends
                back();//this function takes a long time      
             //   buttonSave.setTitle(getString(R.string.bSave));
                return true;
            }
    });

我怎样才能做到这一点?其他可能性是显示进度条,但我可以在函数 back() 结束之前显示它。

提前谢谢了

4

1 回答 1

0

你应该看看 AsyncTask ( http://developer.android.com/reference/android/os/AsyncTask.html )

中的任何内容都doInBackground将在单独的线程上执行,而所有其他方法(比如onProgressUpdate可以操作 UI,因为那又是在 UI 线程上。

所以你可以做这样的事情:

new AsyncTask<Void, Void, Boolean>() {

    @Override
    protected void onPreExecute() {
        buttonSave.setTitle(getString(R.string.loadingWait));
    }

    @Override
    protected Boolean doInBackground(Void... params) {
        back();
    }

    @Override
    protected void onProgressUpdate(Void... values) {
        //Show any progress
    }

    @Override
    protected void onPostExecute(Boolean success) {
        //Anything necessary when the background task is done
    };
}.execute();
于 2013-08-28T07:34:15.990 回答