Android首选项活动在功能结束前更改

时间:2013-08-28 07:14:47

标签: android preferenceactivity

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

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()结束之前显示它。

非常感谢提前

1 个答案:

答案 0 :(得分: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();