Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.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 我应该在长时间运行的异步任务中使用getApplicationContext还是Activity.this_Android - Fatal编程技术网

Android 我应该在长时间运行的异步任务中使用getApplicationContext还是Activity.this

Android 我应该在长时间运行的异步任务中使用getApplicationContext还是Activity.this,android,Android,我有一个长时间运行的异步任务,它向我的服务器发送一些数据,然后停止。整个过程可能涉及一些请求和响应。我必须从数据库中读取数据,发送数据,处理响应,并相应地更新数据库。我正在使用内容提供商从数据库读取和更新数据 现在要使用内容提供者,我必须在上下文中调用getContentResolver()方法。因此,我想知道是必须使用getApplicationContext还是只将活动传递给我的方法 我看到一些帖子解释了两者之间的区别,其中大多数帖子建议我们尽可能不要使用getApplicationCont

我有一个长时间运行的异步任务,它向我的服务器发送一些数据,然后停止。整个过程可能涉及一些请求和响应。我必须从数据库中读取数据,发送数据,处理响应,并相应地更新数据库。我正在使用内容提供商从数据库读取和更新数据

现在要使用内容提供者,我必须在上下文中调用
getContentResolver()
方法。因此,我想知道是必须使用
getApplicationContext
还是只将
活动传递给我的方法


我看到一些帖子解释了两者之间的区别,其中大多数帖子建议我们尽可能不要使用
getApplicationContext
。尽管我不希望我的
AsyncTask
活动中丢失上下文。当
活动
被破坏或方向发生变化时,这会导致
丢失。因此,我想知道我是否可以在我的情况下使用
getApplicationContext
,或者是否会使用
活动。这符合我的要求。

使用每个选项都是有原因的

当您使用上下文来修改UI时,应该使用活动上下文,因为在某些情况下使用应用程序上下文可能会导致异常(和)。例如在以下情况下:

TextView senderNameTextView = new TextView(getApplicationContext());
当您在跨活动使用中使用上下文时,不应将活动上下文绑定到操作,因为即使活动被销毁,也不会对其进行垃圾收集,因为它仍然从正在运行的任务中引用。在这些情况下,您应该使用应用程序上下文。更多详情请参见(作者)


如果您仅使用上下文调用
getContentResolver
,则应使用应用程序上下文。

感谢此处所述的