私はこのように AsyncTask から ListFragment をリロードしようとしています:
//set the string of the kitchen banner depending on the
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
RequestNewTopBannerFragment requestNewTopBannerFragment = new RequestNewTopBannerFragment();
Bundle argsBanner = new Bundle();
argsBanner.putString(RequestNewTopBannerFragment.ARG_KEY_BANNER_TEXT_STR, crrentTopBannerString);//this.currentRequestType ContractFoodServices.NEW_REQUEST_CONST;
requestNewTopBannerFragment.setArguments(argsBanner);
transaction.replace(R.id.fragment_container_top_banner_kitchen, requestNewTopBannerFragment) ;
transaction.addToBackStack(null);
transaction.commit();//LIGHT TIGER : commitAllowingStateLoss()
}
しかし、関数「onProgressUpdate」でこれを行っていますが、例外「IllegalStateException: Can't perform this action after onSaveInstanceState」を取得しました。もちろん、関数「commit」を「commitAllowingStateLoss」に変更すると、同じ例外が表示されます。同時に、フラグメントは常にリロードされるわけではなく、機能する場合と機能しない場合があります。
スレッドから ListFragment をリロードする別の方法を使用しようとしたので、このコードを試しました:
runOnUiThread(new Runnable() {
public void run() {
RequestNewTopBannerFragment requestNewTopBannerFragment = new RequestNewTopBannerFragment();
Bundle argsBanner = new Bundle();
argsBanner.putString(RequestNewTopBannerFragment.ARG_KEY_BANNER_TEXT_STR, crrentTopBannerString);//this.currentRequestType ContractFoodServices.NEW_REQUEST_CONST;
requestNewTopBannerFragment.setArguments(argsBanner);
transaction.replace(R.id.fragment_container_top_banner_kitchen, requestNewTopBannerFragment) ;
transaction.addToBackStack(null);
transaction.commit();//LIGHT TIGER : commitAllowingStateLoss()
}
});
しかし、それも機能せず、同じ例外が表示されたので、「AsyncTask」からいつでもFragmentListをリロードできるようにするための解決策は何ですか
前もって感謝します