Skip to content
Commit daf23d9c authored by riddle_hsu's avatar riddle_hsu
Browse files

Fix lost singleton provider after force-stopping user or package.

Case 1 (name == null):
Switch user from guest to owner. All processes of guest
will be killed, it will not include processes which singleton
components live in, but singleton provider records are still
collected and removed.

When the user switch is complete and the process of removed
singleton provider is still alive, there is someone access
the provider, it will create a new ContentProviderRecord and
wait but no one will notify it because the provider process
is alive with different ContentProviderRecord.

Then the access cannot get response unless the process of target
provider is died and restarted.

Case 2 (name != null):
Switch to another non-guest user, launch an application which
contains singleton provider. Go to Settings to force-stop the
package then switch back to owner user. Launch an application
which will access the singleton provider. It will also cannot
get response that similar as case 1.

Solution:
Only collect singleton provider if target user is all or owner.

Change-Id: Ic6828da66645172d1378cfb1f66d092df5966516
parent 7b566da5
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment