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
,则应使用应用程序上下文。感谢此处所述的。