Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将AppDelegate引用从活动传递到异步任务?_Android - Fatal编程技术网

Android 如何将AppDelegate引用从活动传递到异步任务?

Android 如何将AppDelegate引用从活动传递到异步任务?,android,Android,我正在努力减少我的活动类(Android)中的噪音,我首先要做的是我作为内部类所做的异步任务。我遇到的唯一问题是,一旦异步任务移出,我就无法将AppDelegate ref从活动传递到异步任务 这是我(失败的)尝试 //这里我传递活动的ref public class HelloAndroidActivity extends Activity { @Override public void onCreate(Bundle icicle) { super.onCre

我正在努力减少我的活动类(Android)中的噪音,我首先要做的是我作为内部类所做的异步任务。我遇到的唯一问题是,一旦异步任务移出,我就无法将AppDelegate ref从活动传递到异步任务

这是我(失败的)尝试

//这里我传递活动的ref

public class HelloAndroidActivity extends Activity {
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);

        GetSessionsAsyncTask task = new GetSessionsAsyncTask(HelloAndroidActivity.this, getApplicationContext());
        task.execute();
    }
}
//在这里,我将其推送到一个字段,以便稍后使用(但在这个obj的初始化过程中失败)

有几件事:

  • 什么是“但它在这个obj的初始化过程中失败”?你有例外吗?如果是,什么?堆栈后跟踪
  • 您可以从活动(第一个参数)获取应用程序,因此您实际上不需要构造函数的第二个参数。如果要保留它,请将其更改为比
    上下文更具体的内容(请记住
    AppDelegate
    应用程序
    上下文
  • 您可能希望从
    onStart()
    而不是
    onCreate()
    执行任务,以确保在启动任务之前正确初始化了活动

  • 您需要在清单中将AppDelegate声明为您的应用程序类:

    <application android:name=".AppDelegate" ... >
        ...
    </application>
    
    
    ...
    
    great question(抱歉,我没有澄清)-上面的更新您是否在清单中声明AppDelegate是您的应用程序类?正是我的问题-向下抛出一个答案,以便您可以获得帮助n00b android开发人员的一些荣誉:)请注意,您可以将AppDelegate作为单例使用,并避免强制转换。
    public class AppDelegate extends Application {
    }
    
    <application android:name=".AppDelegate" ... >
        ...
    </application>