0

私はこのように 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をリロードできるようにするための解決策は何ですか

前もって感謝します

4

0 に答える 0