When to call activity context OR application context?

后端 未结 7 1458
野的像风
野的像风 2020-11-21 06:10

There has been a lot of posting about what these two contexts are.. But I\'m still not getting it quite right

As I understand it so far: Each is an instance of its c

7条回答
  •  旧时难觅i
    2020-11-21 06:31

    I was wondering why not to use Application Context for every operation which it supports. In the end it lowers chance of memory leak and missing null check for getContext() or getActivity() (when using injected application context or acquired through static method from Application). Statements, like the one by Ms. Hackborn to use Application Context only if needed, don't seem convincing for me without an explanation why. But it seems that I have found an unswear why:

    have found that there are issues on some Android version / device combinations that do not follow these rules. For instance, if I have a BroadcastReceiver that is passed a Context and I convert that Context to an Application Context and then try to call registerReceiver() on the Application Context there are many instances where this works fine, but also many instances where I get a crash because of a ReceiverCallNotAllowedException. These crashes occur on a wide range of Android versions from API 15 up to 22. https://possiblemobile.com/2013/06/context/#comment-2443283153

    Because it's not guaranteed that all operations described as supported by Application Context in the table below will work on all Android devices!

提交回复
热议问题