【问题标题】:null pointer exception on android asynctaskloaderandroid asynctaskloader上的空指针异常
【发布时间】:2013-03-12 21:36:00
【问题描述】:

我正在尝试做一个 twitter android 应用程序。我仍在处理登录。 所以我在朋友建议我使用 asynctaskloader 之后使用它。我相信我在这一行得到了一个空指针异常:

this.consumer = (OAuthConsumer) new getCommonsHttpOAuthConsumer(context);

这是我的 asynctaskloader 类:

class getCommonsHttpOAuthConsumer extends AsyncTaskLoader{

public getCommonsHttpOAuthConsumer(Context context) {
    super(context);
    // TODO Auto-generated constructor stub
}

@Override
public OAuthConsumer loadInBackground() {
    // TODO Auto-generated method stub

    return new CommonsHttpOAuthConsumer(Constants.CONSUMER_KEY, Constants.CONSUMER_SECRET);
}

}

我做错了什么?你们需要查看更多代码吗? 谢谢。

【问题讨论】:

    标签: nullpointerexception asynctaskloader


    【解决方案1】:

    你没有正确使用加载器类。

    您需要使用此行调用 LoaderManager:

        getLoaderManager().initLoader(ID_FOR_THIS_LOADER, DATA_BUNDLE, CALLBACK);
    

    如果你在Fragment中你需要在开头添加getActivity(),如果你使用的是android.support.v4.jar,你会调用getSupportLoaderManager()。

    将此行放在 onCreate 或 onResume 方法中。它只会通知您的活动您要启动新的加载程序。

    之后,您需要实现通知您的加载程序已创建/完成的回调。此回调由您指定为第三个参数 (CALLBACK) 的对象实现。它可以是一个活动,一个片段……你可以在网上找到语法。

    这是它的样子:

        // Callback called by your Activity
        @Override
        public Loader<OAuthConsumer> onCreateLoader(int id, Bundle arg1) {
            loader = new getCommonsHttpOAuthConsumer();
            return loader;
                // After this method you're going in loadInBackground()
        }
    
        @Override
        public void onLoadFinished(Loader<OAuthConsumer> loader, OAuthConsumer pl) {
               // After loadInBackground() you arrive here, with your new object OAuthConsumer
               this.consumer = pl;
        }
    

    应该是这样的,希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多