사용자 지정 DialogFragment가 있습니다. 내 활동을 전환하는 동안이 대화 상자를 표시하고 싶습니다.한 활동에서 다른 활동으로 전환하는 동안 진행 대화 상자 만들기
시나리오 : - 1) 나는 대화를 시작합니다. 2) asynctask 클래스를 시작하십시오. 3) doInBackground()에서 일부 인증을 수행하십시오. 4) onPostExecute()에서 새로운 활력을 시작하십시오.
문제 : -
대화 상자가 asynctask 전에 중지됩니다. 여기
내 코드입니다 : -myWebView.setWebViewClient(new WebViewClient()
{
@Override
public void onPageStarted(WebView view, String url,
Bitmap favicon)
{
// TODO Auto-generated method stub
super.onPageStarted(view, url, favicon);
redirected =view.getUrl();
redirected= Uri.decode(redirected);
if(redirected!=null && redirected.contains(string1))
{
myprogressDialog.show(getFragmentManager(), "Wait");
}
}
@Override
public void onPageFinished(WebView view, String url)
{
// TODO Auto-generated method stub
super.onPageFinished(view, url);
if(redirected!=null && redirected.contains(mystring))
{
myWebView.stopLoading();
String authorizationContentString = myurl
new Authentication(Activity2.this, myprogressDialog, url).execute(authorizationString);
}
private static class ProgressDialogFragment extends DialogFragment
{
public static ProgressDialogFragment newInstance()
{
return new ProgressDialogFragment();
}
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setStyle(STYLE_NO_FRAME, android.R.style.Theme_Translucent);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
return inflater.inflate(R.layout.fragment_dialog_progress, container, false);
}
}
Authentication.java
@Override
protected void onPreExecute()
{
// TODO Auto-generated method stub
super.onPreExecute();
/* progDia.show(man, "wait");
progDia= new Utility.ProgressDialogFragment().newInstance();*/
}
public AuthenticateDevice(Details1 myContext, ProgressDialogFragment myprogressDialog, String Url)
{
// TODO Auto-generated constructor stub
mContext = myContext;
this.progDia = myprogressDialog;
this.Url = Url;
this.mActivity = myContext;
}
@Override
protected Void doInBackground(String... params)
{
// TODO Auto-generated method stub
//Some authentication
return null;
}
@Override
protected void onPostExecute(Void result)
{
// TODO Auto-generated method stub
super.onPostExecute(result);
if(progDia!=null&&progDia.isVisible())
{
progDia.dismiss();
}
Intent myIntent = new Intent(mContext, Activity2.class);
myIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
mContext.startActivity(myIntent);
mActivity.finish();
}
왜 'onPreExecute'에서 진행 대화 상자를 만들고'onPostExecute'에서 닫지 않습니까? – Aniruddha
위의 설명은 의미가 있습니다! 또는 progressBar.show()를 onPageStarted() 전에 호출 해보십시오. 이상적으로 작동해야합니다. –
@stack_ved URL이 특정 URL로 리디렉션 될 때 실제로 진행 대화 상자를 표시하려고합니다. 이 잘 작동합니다. 그러나 새로운 활동이 시작될 때 – user2625086