さて、ようやく間違いを見つけました。ePeaceが彼の答えで述べたように。Asyntaskクラスで、リスナーがnullである場合にnullpointerexceptionをスローするコンストラクターを作成しました。
AsyncListener listener;
public ReportFactory(AsyncListener a)
{
if(a == null)
{
throw new NullPointerException("Listener cant be null");
}
this.setListener(a);
}
public interface AsyncListener {
public void onComplete(String url);
}
public void setListener(AsyncListener listener) {
this.listener = listener;
}
その後、フラグメントクラスでリスナーを作成しました。(クラス内にリスナーへのグローバル参照を設定して、フラグメントライフサイクルの他の場所で使用できるようにします)
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
listener = new AsyncListener()
{
@Override
public void onComplete(String url)
{
URL = url;
webview.loadUrl(URL);
}
};
}
そして最後に、onCreateメソッドでAsyntaskを作成し、リスナーをパラメーターとして提供しました。
ReportFactory factory = new ReportFactory(listener);
factory.execute(usr, designFile);
後で必要になるかもしれないあなたのためにそれがうまくいくことを願っています。ePeaceをありがとうございました。