trumpimar / mytracks

Automatically exported from code.google.com/p/mytracks
0 stars 0 forks source link

Run long operations in a separate thread to avoid ANR errors. #232

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
This is a general category for MyTracks bugs that are related to blocking UI 
thread for too long, which results with an ANR error.

For instance, consider this example, where we delete all tracks in the UI 
thread:

DALVIK THREADS:
"main" prio=5 tid=1 NATIVE
  | group="main" sCount=1 dsCount=0 s=N obj=0x4001d8c0 self=0xccc8
  | sysTid=1729 nice=0 sched=0/0 cgrp=default handle=-1345017816
  | schedstat=( 25614013784 7283935425 14437 )
  at android.database.sqlite.SQLiteStatement.native_execute(Native Method)
  at android.database.sqlite.SQLiteStatement.execute(SQLiteStatement.java:55)
  at android.database.sqlite.SQLiteDatabase.delete(SQLiteDatabase.java:1598)
  at com.google.android.apps.mytracks.content.MyTracksProvider.delete(MyTracksProvider.java:186)
  at android.content.ContentProvider$Transport.delete(ContentProvider.java:198)
  at android.content.ContentResolver.delete(ContentResolver.java:675)
  at com.google.android.apps.mytracks.content.MyTracksProviderUtilsImpl.deleteAllTracks(MyTracksProviderUtilsImpl.java:452)
  at com.google.android.apps.mytracks.MyTracksDeleteAllTracks$1.onClick(MyTracksDeleteAllTracks.java:61)
  at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:158)
  at android.os.Handler.dispatchMessage(Handler.java:99)
  at android.os.Looper.loop(Looper.java:123)
  at android.app.ActivityThread.main(ActivityThread.java:4627)
  at java.lang.reflect.Method.invokeNative(Native Method)
  at java.lang.reflect.Method.invoke(Method.java:521)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
  at dalvik.system.NativeStart.main(Native Method)

User comments:
Oct 11, 2010 3:18:12 AM1.0.19not tracking all the. time
Sep 10, 2010 3:59:15 PM1.0.17error when exporting all tracks (90) as tcx file 
type
Aug 23, 2010 3:04:32 AM1.0.15while deleting several (more than 20) tracks 
recorded to phone app stopped responding
Aug 11, 2010 11:37:15 PM1.0.15my tracks has not been recording properly and 
cannot record. I intend to reload as this app was fantastic when was working
Aug 9, 2010 1:51:50 AM1.0.15mytracks will not record new tracks and will not 
delete existing ones
Apr 27, 2010 4:27:28 AM1.0.11i use my tracks to log my daily runs. i then send 
my tracks info to google maps and google docs. for the past two days the gps 
has been off. yesterday only my time was logged. todat half a mile of my run 
went missing. please fix this app to perform the way it has in the past. thanks.

Original issue reported on code.google.com by ba...@google.com on 22 Nov 2010 at 11:44

GoogleCodeExporter commented 8 years ago
DALVIK THREADS:
"main" prio=5 tid=1 NATIVE
  | group="main" sCount=1 dsCount=0 s=N obj=0x40025ad8 self=0xcd80
  | sysTid=17508 nice=0 sched=0/0 cgrp=bg_non_interactive handle=-1345017808
  | schedstat=( 3827575695 2689147927 6578 )
  at java.io.File.existsImpl(Native Method)
  at java.io.File.exists(File.java:445)
  at com.google.android.apps.mytracks.MyTracks.cleanTmpDirectory(MyTracks.java:369)
  at com.google.android.apps.mytracks.MyTracks.onStop(MyTracks.java:356)
  at android.app.Instrumentation.callActivityOnStop(Instrumentation.java:1287)
  at android.app.Activity.performStop(Activity.java:3898)
  at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3629)
  at android.app.ActivityThread.handleStopActivity(ActivityThread.java:3677)
  at android.app.ActivityThread.access$2600(ActivityThread.java:135)
  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2153)
  at android.os.Handler.dispatchMessage(Handler.java:99)
  at android.os.Looper.loop(Looper.java:144)
  at android.app.ActivityThread.main(ActivityThread.java:4937)
  at java.lang.reflect.Method.invokeNative(Native Method)
  at java.lang.reflect.Method.invoke(Method.java:521)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
  at dalvik.system.NativeStart.main(Native Method)

Original comment by ba...@google.com on 22 Nov 2010 at 11:47

GoogleCodeExporter commented 8 years ago
Can we fold this into issue 239?

Original comment by sandordo...@google.com on 29 Nov 2010 at 3:43

GoogleCodeExporter commented 8 years ago
Yeah, although as a matter of fact 239 is a dup of this one, which was created 
before.

Original comment by ba...@google.com on 29 Nov 2010 at 4:30

GoogleCodeExporter commented 8 years ago
True, sorry for the duplicate, but the other has much more discussion now.

Original comment by sandordo...@google.com on 29 Nov 2010 at 4:33