在UI线程上查询DownloadManager是否可以?

7
DownloadManager有一个方法query()。我的问题是是否可以在UI线程上调用此方法,或者它只能从后台线程中调用?
调用它会不会导致ANR?
1个回答

6
如果您查看query()方法的源代码,您会发现:
public Cursor query(Query query) {
  Cursor underlyingCursor = query.runQuery(mResolver, UNDERLYING_COLUMNS, mBaseUri);
  if (underlyingCursor == null) {
    return null;
  }
  return new CursorTranslator(underlyingCursor, mBaseUri);
}

...这可以分解为一个问题,即在UI线程中访问游标是否安全。请参见Mark Murphy的优秀答案。摘录如下:

因此,请在后台线程中查询DownloadManager。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接