package my.realtyServe.Pkg;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ImageView;
import android.content.Intent;
import android.widget.Toast;
import android.util.Log;
public class ServeWebAct extends Activity {
 WebView mWebView;
 Intent intent;
 private ProgressDialog progressDialog;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
        setContentView(R.layout.serveweblayout);
        
        intent = getIntent();  
        mWebView = (WebView) findViewById(R.id.webview); 
        mWebView.getSettings().setJavaScriptEnabled(true);      // 웹뷰에서 자바스크립트실행가능
        mWebView.loadUrl("intent.getStringExtra("linkUrl"));  
        mWebView.setWebViewClient(new HelloWebViewClient());      // WebViewClient 지정
        findViewById(R.id.home).setOnClickListener(mClickListener);
    }
    
    ImageView.OnClickListener mClickListener = new ImageView.OnClickListener() {
  Intent intent; 
  public void onClick(View v) {
   switch (v.getId()) {
   case R.id.home:
    intent = new Intent(ServeWebAct.this,ServeMainAct.class);
    break;
   case R.id.maemul:
    intent = new Intent(ServeWebAct.this,ServeMainAct.class);
    break;
   }
   startActivity(intent);
   finish();
  }
 };
    
    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
        if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) { 
            mWebView.goBack(); 
            return true; 
        } 
        return super.onKeyDown(keyCode, event); 
    }
    
    private class HelloWebViewClient extends WebViewClient { 
     @Override 
        public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      view.loadUrl("url); 
            if(url.equals("http://m.serve.co.kr/m/")){
             intent = new Intent(ServeWebAct.this,ServeMainAct.class);
             startActivity(intent);
             Log.d("test","shouldOverrideUrlLoading");
             finish();
            }    
            return true; 
     }
     
        public void onLoadResource (WebView view, String url) { 
         Log.d("test","onLoadResource");
      if (progressDialog == null) {
       progressDialog = new ProgressDialog(ServeWebAct.this);
       progressDialog.setMessage("데이터를 불러오고 있습니다.");
       progressDialog.show();
       
      }
     }
        
     public void onPageFinished(WebView view, String url) {
      
      if (progressDialog.isShowing()) {
       Log.d("test","onPageFinished");
       progressDialog.dismiss();
       progressDialog = null;
      } 
     }
     
     @Override
     public void onReceivedError(WebView view, int errorCode, String description, String failingUrl){
      Toast.makeText(ServeWebAct.this, "로딩오류:"+description, Toast.LENGTH_SHORT).show();
     }
     
    }
 
}


몇일 동안 구글링 했지만 정말 찾지를 못했습니다 여러분 도와주세요~~~

 

제가 몇일 동안 파악해 해본 결과 문제는

 

webview 에서 웹페이지를 불러오고 웹 페이지 특정 아이콘을 클릭했을 경우 메인 액티비티로 가는 부분을 구현하였습니다

 

그런데 문제는 progressDialog로그가 돌고 있는 상태에서

 

메인 액티비티로 가기 위해 intent를 생성하고 메인 액티비티로 이동후

 

webview 가 있는 액티비티를 finish(); 한이후에

 

메인 액티비티가 화면에 나타난 후 조금 있다가 오류가 나버립니다

 

webwiew 가 있는 액티비티에서 메인 엑티비티로 넘어갈때

 

onPageFinished 메소드 부분에서 progressDialog.dismiss(); 하는 부분에서 오류가 발생하는거 같습니다

 

progressDialog 로그를 구현하는 부분을 제거하면 오류는 발생하지 않습니다

 

 INFO/ActivityManager(2434): Starting activity: Intent { cmp=my.realtyServe.Pkg/.ServeMainAct }
DEBUG/test(15096): shouldOverrideUrlLoading
WARN/ActivityManager(2434): Trying to launch my.realtyServe.Pkg/.ServeMainAct
DEBUG/test(15096): onLoadResource
VERBOSE/AudioFlinger(2322): getNextBuffer() no more data for track 4099 on thread 0x2f1e8
VERBOSE/SoundPool(2434): stopping track
VERBOSE/SoundPool(2434): stop
VERBOSE/AudioTrack(2434): stop 0x3caf48
VERBOSE/AudioFlinger(2322): stop(4099), calling thread 2434
VERBOSE/AudioFlinger(2322): (> STOPPED) => STOPPED (4099) on thread 0x2f1e8
VERBOSE/AudioPolicyManager(2322): stopOutput() output 1, stream 1
VERBOSE/AudioPolicyManager(2322): changeRefCount() stream 1, count 0
VERBOSE/AudioPolicyManager(2322): getNewDevice() selected device 0
VERBOSE/AudioPolicyManager(2322): setOutputDevice() output 1 device 0 delayMs 0 force 0
VERBOSE/AudioPolicyManager(2322): setOutputDevice() setting same device 0 or null device for output 1
VERBOSE/SoundPool(2434): done(256)
VERBOSE/SoundPool(2434): move to front
DEBUG/test(15096): onLoadResource
DEBUG/test(15096): onLoadResource
DEBUG/test(15096): onLoadResource
VERBOSE/AudioFlinger(2322): TrackBase::reset
DEBUG/test(15096): onLoadResource
INFO/ActivityManager(2434): Displayed activity my.realtyServe.Pkg/.ServeMainAct: 410 ms (total 410 ms)
ERROR/WindowManager(15096): Activity my.realtyServe.Pkg.ServeWebAct has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@47f969b8 that was originally added here
ERROR/WindowManager(15096): android.view.WindowLeaked: Activity my.realtyServe.Pkg.ServeWebAct has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@47f969b8 that was originally added here
ERROR/WindowManager(15096):     at android.view.ViewRoot.<init>(ViewRoot.java:247)
ERROR/WindowManager(15096):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)
ERROR/WindowManager(15096):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
ERROR/WindowManager(15096):     at android.view.Window$LocalWindowManager.addView(Window.java:424)
ERROR/WindowManager(15096):     at android.app.Dialog.show(Dialog.java:241)
ERROR/WindowManager(15096):     at my.realtyServe.Pkg.ServeWebAct$HelloWebViewClient.onLoadResource(ServeWebAct.java:78)
ERROR/WindowManager(15096):     at android.webkit.CallbackProxy.handleMessage(CallbackProxy.java:387)
ERROR/WindowManager(15096):     at android.os.Handler.dispatchMessage(Handler.java:99)
ERROR/WindowManager(15096):     at android.os.Looper.loop(Looper.java:123)
ERROR/WindowManager(15096):     at android.app.ActivityThread.main(ActivityThread.java:4632)
ERROR/WindowManager(15096):     at java.lang.reflect.Method.invokeNative(Native Method)
ERROR/WindowManager(15096):     at java.lang.reflect.Method.invoke(Method.java:521)
ERROR/WindowManager(15096):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
ERROR/WindowManager(15096):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
ERROR/WindowManager(15096):     at dalvik.system.NativeStart.main(Native Method)
DEBUG/test(15096): onPageFinished
DEBUG/AndroidRuntime(15096): Shutting down VM
WARN/dalvikvm(15096): threadid=1: thread exiting with uncaught exception (group=0x4001d828)
ERROR/AndroidRuntime(15096): FATAL EXCEPTION: mainpackage my.realtyServe.Pkg;ERROR/AndroidRuntime(15096): java.lang.IllegalArgumentException: View not attached to window manager
ERROR/AndroidRuntime(15096):     at android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:355)
ERROR/AndroidRuntime(15096):     at android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:200)
ERROR/AndroidRuntime(15096):     at android.view.Window$LocalWindowManager.removeView(Window.java:432)
ERROR/AndroidRuntime(15096):     at android.app.Dialog.dismissDialog(Dialog.java:278)
ERROR/AndroidRuntime(15096):     at android.app.Dialog.access$000(Dialog.java:71)
ERROR/AndroidRuntime(15096):     at android.app.Dialog$1.run(Dialog.java:111)
ERROR/AndroidRuntime(15096):     at android.app.Dialog.dismiss(Dialog.java:268)
ERROR/AndroidRuntime(15096):     at my.realtyServe.Pkg.ServeWebAct$HelloWebViewClient.onPageFinished(ServeWebAct.java:87)
ERROR/AndroidRuntime(15096):     at android.webkit.CallbackProxy.handleMessage(CallbackProxy.java:281)
ERROR/AndroidRuntime(15096):     at android.os.Handler.dispatchMessage(Handler.java:99)
ERROR/AndroidRuntime(15096):     at android.os.Looper.loop(Looper.java:123)
ERROR/AndroidRuntime(15096):     at android.app.ActivityThread.main(ActivityThread.java:4632)
ERROR/AndroidRuntime(15096):     at java.lang.reflect.Method.invokeNative(Native Method)
ERROR/AndroidRuntime(15096):     at java.lang.reflect.Method.invoke(Method.java:521)
ERROR/AndroidRuntime(15096):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
ERROR/AndroidRuntime(15096):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
ERROR/AndroidRuntime(15096):     at dalvik.system.NativeStart.main(Native Method)
WARN/ActivityManager(2434):   Force finishing activity my.realtyServe.Pkg/.ServeMainAct