2016-05-20 4 views
0

hallo Jungs im immer diesen Fehler in meiner Log-Katze und ich weiß nicht, wie sie zu beheben ..Dienst GELECKT Fehler

android.app.ServiceConnectionLeaked: Activity com.example.harrops.h20droidapp.webstreamsListview has leaked ServiceConnection [email protected] that was originally bound here 

Ich habe eine Liste Ansicht, dass, wenn ein Element geklickt wird es eine Webansicht für das Element öffnet . ich habe auch einen webclient eingerichtet, da ich brauche die webpage haben ihre eigenen benutzerdefinierten laden dialog und auch wenn es öffnet bestimmte links öffnet es sie im fabrikbrowser. jede Hilfe oder in aufzuhetzen, was sehr geschätzt

wäre vor sich geht

das ist mein webstreamsListview

@Override 
public void onSaveInstanceState(Bundle outState) { 
    wv.saveState(outState); 
} 


@Override 
protected void onCreate(final Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_webstreams_listview); 


    if (savedInstanceState == null) { 


     mAdView = (AdView) findViewById(R.id.webstreams_adview); 
     mAdView2 = (AdView) findViewById(R.id.webstreams_adview1); 

     lv = (ListView) findViewById(R.id.lvWebstreamingSites); 
     lv.setScrollbarFadingEnabled(false); 
     lv.setAdapter(new webStreamsAdapter(this)); 
     wv = (WebView) findViewById(R.id.wvWebStreamingSites); 


     final AdRequest adRequest = new AdRequest.Builder() 
       .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) 
       .build(); 
     mAdView.loadAd(adRequest); 


     lv.setOnItemClickListener(new CastingOnitemListener() { 

      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       switch (position) { 


        case 0: 


         wv.setScrollbarFadingEnabled(false); 

         wv.getSettings().setJavaScriptEnabled(true); 
         wv.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 
         wv.getSettings().setRenderPriority(WebSettings.RenderPriority.NORMAL); 
         wv.getSettings().setLoadsImagesAutomatically(true); 
         wv.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT); 

         if (Build.VERSION.SDK_INT >= 19) { 
          // chromium, enable hardware acceleration 
          wv.setLayerType(View.LAYER_TYPE_HARDWARE, null); 
         } else { 
          // older android version, disable hardware acceleration 
          wv.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 
         } 
         wv.canGoBackOrForward(1); 
         wv.getSettings().setLoadWithOverviewMode(true); 
         wv.getSettings().setUseWideViewPort(true); 
         wv.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); 


         wv.setPadding(0, 0, 0, 0); 

         wv.setWebViewClient(new webclient1(dialog, c)); 


         wv.loadUrl(MY URL); 

         break; 

und das ist mein webclient Klasse

public class webclient1 extends WebViewClient { 


View v; 
ProgressDialog dg; 

public webclient1(ProgressDialog dialog, Context c) { 
    this.dg = dialog; 


    dg = new ProgressDialog(c,R.style.CustomDialog); 
    dg.setTitle("H20 its an app thing ..."); 
    dg.setIcon(R.drawable.h20_dialog_logo); 
    dg.setMessage("Please wait..."); 

} 

@Override 
public boolean shouldOverrideUrlLoading(WebView webView, String urlNewString) { 
    webView.getSettings().setSupportMultipleWindows(true); 

     webView.getContext().startActivity(
       new Intent(Intent.ACTION_VIEW, Uri.parse(urlNewString))); 
     return true; 



} 



@Override 
public void onPageStarted(WebView view, String url, Bitmap favicon) { 
    view.setVisibility(View.GONE); 
    dg.show(); 
} 

@Override 
public void onPageFinished(WebView view, String url) { 
    view.setVisibility(View.VISIBLE); 
    dg.dismiss(); 
} 

}

Antwort

0

ok Jungs, ich denke, Es war, weil mein benutzerdefinierter Webclient weiterhin Dienste weitergab, nachdem die Webansicht geschlossen wurde, dies ist, wie ich es behoben habe.

ich habe diese Lücke Methode in meiner webstreamslistview Klasse, die alles löscht, sobald die Webseite

@Override 
protected void onDestroy() { 
super.onDestroy(); 

wv.removeAllViews(); 
wv.clearHistory(); 
wv.clearCache(true); 
wv.clearView(); 
wv.destroy(); 
wv= null;   

}

zerstört
Verwandte Themen