翻新呼叫用户界面挂起andriod后挂起>>

问题描述 投票:1回答:1

[我提交请求后,我使用Json Response中的Retrofit接收了数据。但是,当我旋转我的应用程序后,我请求的数据为Null时,用户界面会挂起。同样,我必须提出请求。请帮助我简化此过程问题将大有帮助。这是代码

[code

public class ApiClient {
    public static final String BASE_URL = " ";  //Duplicate URL
    public static Retrofit retrofit=null;
    public static Retrofit getClient()
    {
        if(retrofit==null)
        {
            retrofit=new Retrofit.Builder().baseUrl(BASE_URL).
                    addConverterFactory(GsonConverterFactory.create()).build();
        }
        return retrofit;
    }
}

片段通话在这里,我调用改造并提交值,我得到了输出,但是此后它挂起了用户界面。

 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        v= inflater.inflate( R.layout.fragstaff_report, container, false );
        recyclerView=(RecyclerView) v.findViewById( R.id.recyclerview_report );
        layoutManager=new LinearLayoutManager(getActivity());
        recyclerView.setLayoutManager(layoutManager);
        recyclerView.setHasFixedSize(true);

        datepick=(EditText) v.findViewById(R.id.from_date);
        datepick1=(EditText) v.findViewById(R.id.to_date);
        Button btn1=(Button)v.findViewById( R.id.btn_report);
        SharedDataUserEmail = SharedPrefManager.getInstans( getActivity() ).getUserEmail();
        datepick.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // Initialize a new date picker dialog fragment
                DialogFragment dFragment = new Fragement2.DatePickerFragment();
                // Show the date picker dialog fragment
                dFragment.show(getFragmentManager(), "Date Picker");
                startEndDAte = true;
            }
        });


        datepick1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // Initialize a new date picker dialog fragment
                DialogFragment dFragment = new Fragement2.DatePickerFragment();
                // Show the date picker dialog fragment
                dFragment.show(getFragmentManager(), "Date Picker");
                startEndDAte = false;
            }
        });
        btn1.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                FromDate = datepick.getText().toString();
                Date date=new Date(FromDate);
                SimpleDateFormat formatter=new SimpleDateFormat("YYYY-MM-dd");
                 FromDateLocal = formatter.format(date);


                ToDate = datepick1.getText().toString();
                Date date1=new Date(ToDate);
                SimpleDateFormat formatter1=new SimpleDateFormat("YYYY-MM-dd");
                 DateformatTo = formatter1.format(date1);



                final ProgressDialog mProgressDialog = new ProgressDialog( getActivity() );
                (getActivity()).getWindow().setFlags( WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
                        WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE );
                mProgressDialog.setIndeterminate( true );
                mProgressDialog.setMessage( "Loading..." );
                mProgressDialog.show();


                apiInterface = ApiClient.getClient(httpClient).create( ApiInterface.class );
                Call<List<VirtualFragementModel>> call = apiInterface.getEmployeeReport(FromDateLocal,DateformatTo,SharedDataUserEmail);
                Toast.makeText( getActivity(),"New From Date "+FromDateLocal+" To Date "+ DateformatTo+"Emailid "+SharedDataUserEmail,Toast.LENGTH_LONG).show();
                call.enqueue( new Callback<List<VirtualFragementModel>>() {


                    @Override
                    public void onResponse(Call<List<VirtualFragementModel>> call, Response<List<VirtualFragementModel>> response) {
                        if (mProgressDialog.isShowing())
                        {
                            mProgressDialog.dismiss();
                        }
                        virtualFragementModels=response.body();
                        employerReportAdapter=new EmployerReportAdapter(virtualFragementModels,getActivity());
                        recyclerView.setAdapter(employerReportAdapter);

                    }
                    @Override
                    public void onFailure(Call<List<VirtualFragementModel>> call, Throwable t) {

                        Toast.makeText( getActivity(),"Welcome error Handling Session",Toast.LENGTH_LONG ).show();
                    }
                } );
            }
        } );
        return v;
    }

[CODE

] >>

[我提交请求后,我使用Json Response中的Retrofit接收了数据。但是,当我旋转我的应用程序后,我请求的数据为Null时,用户界面却会挂起。同样,我必须发出请求...。

android user-interface retrofit retrofit2 android-studio-3.0
1个回答
1
投票

为此,您可以使用onSaveInstanceState()onRestoreInstanceState()方法,因为旋转设备时,您当前的活动将完全销毁,它会通过onSaveInstanceState()onPause()onStop() onDestroy()并创建一个新活动完全通过onCreate()onStart()onRestoreInstanceState()

您可以这样保存变量:

© www.soinside.com 2019 - 2024. All rights reserved.