2016-04-11 6 views
0

webviewコンポーネントを使用するAndroidアプリケーションでは、Applicationクラスを拡張してgetPackageName()メソッドをオーバーライドします。このメソッドは、アプリケーションのさまざまなコンポーネントで複数回呼び出されます。私はそれを呼び出すwebviewコンポーネントかどうかを知りたい。ここ は私のコードです:Android - アプリケーションでgetPackageName()をオーバーライドし、コンポーネントコールバックを取得します。

package com.xxx.xxx; 
import android.app.Application; 

public class Global extends Application { 

    private static Global instance; 

    public Global() { 
     instance = this; 
    } 

    private final String PACKAGE="com.webnews.appdirector"; 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
    } 

    @Override 
    public String getPackageName() { 
     return PACKAGE; //this work fine, but how to know if is webkit callback ??? "instance" have mcomponentcallbacks set to webkit, but how to read it ??? 
    } 
} 

あなたは私を助けることができますか?

答えて

0

少し遅れて回答しますが、これはうまくいくはずです。

@Override 
public String getPackageName() 
{ 
    try 
    { 
     throw new Exception(); 
    } 
    catch (Exception e) 
    { 
     StackTraceElement[] elements = e.getStackTrace(); 

     for (StackTraceElement element: elements) 
     { 
      if(element.getClassName().startsWith("android.webkit.")) 
      { 
       return null; 
      } 
     } 
    } 

    return super.getPackageName(); 
} 
関連する問題