I am using Google Analytics for Android but after turning on StrictMode I get a lot of message like this:
StrictMode policy violation; ~duration=349 ms: android.os.StrictMode$StrictModeDiskReadViolation: policy=23 violation=2
at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:745)
at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1235)
at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1189)
at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1309)
at com.google.android.apps.analytics.PersistentEventStore.peekEvents(Unknown Source)
at com.google.android.apps.analytics.PersistentEventStore.peekEvents(Unknown Source)
at com.google.android.apps.analytics.GoogleAnalyticsTracker.dispatch(Unknown Source)
at com.google.android.apps.analytics.GoogleAnalyticsTracker$1.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:3647)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
Can I ignore that? I also tried to put tracker.trackingPageView(...) into AsyncTask - same Result.
Here are my settings for StrictMode:
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads()
.detectDiskWrites()
.detectNetwork()
.penaltyLog()
.build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedSqlLiteObjects()
.penaltyLog()
.penaltyDeath()
.build());
I would really appreciate any help - thanks in advance! Mike
StrictMode is a developer tool which detects things you might be doing by accident and brings them to your attention so you can fix them. StrictMode is most commonly used to catch accidental disk or network access on the application's main thread, where UI operations are received and animations take place.
StrictMode (android. os. StrictMode) class can be used to enable and enforce various policies that can be checked for and reported upon. This can be a StrictMode violation in executing a disk write violation that occurs when you are performing disk writes on the main UI thread.
To enable and configure the StrictMode in your application, you require to use setThreadPolicy() and setVmPolicy() methods of StrictMode. It is a good practice to set policies either in Application class or initial activity.
Check out the iosched app for their AnalyticsUtils.java which does some asynctask magic around track calls. There is however this in the constructor:
// Unfortunately this needs to be synchronous.
mTracker.start(UACODE, 300, mApplicationContext);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With