我在应用中有一个共享的ContentProvider
+ SQLiteDatabase
模型。
当它与应用程序共享相同的进程时,此ContentProvider
正常运行。但是,如果我让它在自己的进程中运行(声明IOException
),则抛出android:process
。
抛出的异常不会导致任何应用程序崩溃问题,我只是想知道为什么会发生这种情况以及是否可以防止它发生。
CursorLoader
进行单一查询。ContentResolver
进行单一查询。ContentProvider
会尝试创建“本地套接字”?<provider>
<provider
android:name="com.demo.sharedprovider.SharedProvider"
android:authorities="com.demo.sharedprovider.provider"
android:permission="com.demo.sharedprovider.PROVIDER"
android:process=":provider" />
com.demo.sharedprovider:provider E/InstantRun: IO Error creating local socket at com.demo.sharedprovider
java.io.IOException: Address already in use
at android.net.LocalSocketImpl.bindLocal(Native Method)
at android.net.LocalSocketImpl.bind(LocalSocketImpl.java:306)
at android.net.LocalServerSocket.<init>(LocalServerSocket.java:48)
at com.android.tools.fd.runtime.Server.<init>(Server.java:94)
at com.android.tools.fd.runtime.Server.create(Server.java:88)
at com.android.tools.fd.runtime.BootstrapApplication.onCreate(BootstrapApplication.java:303)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1013)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4707)
at android.app.ActivityThread.-wrap1(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
非常感谢任何帮助。