Android 上的异步任务冻结

发布于 2024-11-07 19:09:19 字数 16824 浏览 2 评论 0原文

我的活动有奇怪的问题,我不知道该怎么办...

private Bitmap mBitmap;

@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    mBitmap = initBitmap();
}


@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.menuItemNew:
            doSomething();
            return true;    
        case R.id.menuItemNative:
            showList();
            return true;

    }

    return(super.onOptionsItemSelected(item));
}

private boolean selected;

private void showList() {
    CharSequence[] items = {"First", "Second"};

    selected = false;
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("Selection mode");
    builder.setSingleChoiceItems(items, 0, new OnClickListener() {

        public void onClick(DialogInterface dialog, int item) {
            selected = item == 1;
        }
    });
    builder.setPositiveButton("OK", new OnClickListener() {

        public void onClick(DialogInterface dialog, int which) {
            if (selected) {
                new NativeTask().execute();
            }
        }
    });
    Dialog dia = builder.create();
    dia.show();

}

private class NativeTask extends AsyncTask<String, String, String> {

    @Override
    protected String doInBackground(String... params) {
        Log.i("task", "before Native Call");
        int buffer[] = new int[mBitmap.getWidth() * mBitmap.getHeight()];
        mBitmap.getPixels(buffer, 0, mBitmap.getWidth(), 0, 0, mBitmap.getWidth(), mBitmap.getHeight());
        int[] result = NativeLibrary.process(pixels);
        Log.i("task", "after Native Call");

        return null;
    }

    @Override
    protected void onProgressUpdate(String... progress) {
        Log.i("task", "in progress");
    }

    @Override
    protected void onPostExecute(String a) {

        Log.i("task", "in postExecute");
    }
}

这是我的活动的相关部分。如您所见,我在那里有菜单,如果您单击第二个项目,则会出现包含两个项目列表的对话框。然后,如果您选择并确认列表中的第二项,则将执行 AsyncTask 并调用本机代码中的某些方法。

看起来不错(对我来说),但存在一些问题 - 当我从列表中选择第二项时,本机方法被正确调用......但活动冻结了。

日志包含所有三个消息:

  • 任务:本机调用之前
  • 任务:本机调用之后
  • 任务:在 postExecute

我不知道还需要做什么。我错过了什么吗?为什么当我使用 AsyncTask 时我的 Activity 冻结?我在 AsyncTask 中使用位图有问题吗? NativeLibrary.process(int[]) 返回正确的数组,没有问题......那么为什么?

我会很高兴收到任何提示!

PS:我很抱歉我的英语不好

编辑:这是冻结的日志

05-17 01:44:53.831: INFO/task(27629): after Natvive Call
05-17 01:44:53.831: INFO/task(27629): in postExecute
05-17 01:44:56.391: DEBUG/dalvikvm(24817): GC_EXPLICIT freed 7 objects / 280 bytes in 67ms
05-17 01:45:05.991: DEBUG/dalvikvm(16702): GC_EXPLICIT freed 103 objects / 3760 bytes in 669ms
05-17 01:45:24.011: DEBUG/dalvikvm(16635): GC_EXPLICIT freed 7 objects / 280 bytes in 690ms
05-17 01:45:27.181: WARN/WindowManager(96): Key dispatching timed out sending to my.test.application/my.test.application.NativeActivity
05-17 01:45:27.181: WARN/WindowManager(96): Previous dispatch state: {{KeyEvent{action=0 code=82 repeat=0 meta=0 scancode=139 mFlags=8} to Window{46518640 my.test.application/my.test.application.NativeActivity paused=false} @ 1305589511983 lw=Window{46518640 my.test.application/my.test.application.NativeActivity paused=false} lb=android.os.BinderProxy@46426770 fin=false gfw=true ed=true tts=0 wf=false fp=false mcf=Window{46518640 my.test.application/my.test.application.NativeActivity paused=false}}}
05-17 01:45:27.181: WARN/WindowManager(96): Current dispatch state: {{KeyEvent{action=1 code=82 repeat=0 meta=0 scancode=139 mFlags=8} to Window{46518640 my.test.application/my.test.application.NativeActivity paused=false} @ 1305589527184 lw=Window{46518640 my.test.application/my.test.application.NativeActivity paused=false} lb=android.os.BinderProxy@46426770 fin=false gfw=true ed=true tts=0 wf=false fp=false mcf=Window{46518640 my.test.application/my.test.application.NativeActivity paused=false}}}
05-17 01:45:27.181: WARN/WindowManager(96): waitedFor: 15000, keyDispatchingTimeout: 15000
05-17 01:45:27.221: ERROR/ActivityManager(96): ANR in my.test.application (my.test.application/.NativeActivity)
05-17 01:45:27.221: ERROR/ActivityManager(96): Reason: keyDispatchingTimedOut
05-17 01:45:27.221: ERROR/ActivityManager(96): Load: 1.73 / 1.48 / 1.71
05-17 01:45:27.221: ERROR/ActivityManager(96): CPU usage from 682640ms to 23ms ago:
05-17 01:45:27.221: ERROR/ActivityManager(96):   system_server: 2% = 1% user + 0% kernel / faults: 14389 minor 3 major
05-17 01:45:27.221: ERROR/ActivityManager(96):   com.htc.album: 1% = 1% user + 0% kernel / faults: 23991 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   logcat: 0% = 0% user + 0% kernel
05-17 01:45:27.221: ERROR/ActivityManager(96):   akmd: 0% = 0% user + 0% kernel / faults: 828 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   debuggerd: 0% = 0% user + 0% kernel / faults: 49 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   d.process.acore: 0% = 0% user + 0% kernel / faults: 1272 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   gets.SenseClock: 0% = 0% user + 0% kernel / faults: 1212 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   d.process.media: 0% = 0% user + 0% kernel / faults: 285 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   rmClockPlusDock: 0% = 0% user + 0% kernel / faults: 298 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   m.android.phone: 0% = 0% user + 0% kernel / faults: 36 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   harrison.agenda: 0% = 0% user + 0% kernel / faults: 264 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   adbd: 0% = 0% user + 0% kernel / faults: 57 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   LocationService: 0% = 0% user + 0% kernel / faults: 169 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   e.process.gapps: 0% = 0% user + 0% kernel / faults: 225 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   mpz.audioplayer: 0% = 0% user + 0% kernel / faults: 130 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   com.htc.bg: 0% = 0% user + 0% kernel / faults: 91 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   panel_on/0: 0% = 0% user + 0% kernel
05-17 01:45:27.221: ERROR/ActivityManager(96):   w1_bus_master1: 0% = 0% user + 0% kernel
05-17 01:45:27.221: ERROR/ActivityManager(96):   zygote: 0% = 0% user + 0% kernel / faults: 342 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   .android.htcime: 0% = 0% user + 0% kernel / faults: 118 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   synaptics_wq: 0% = 0% user + 0% kernel
05-17 01:45:27.221: ERROR/ActivityManager(96):   events/0: 0% = 0% user + 0% kernel
05-17 01:45:27.221: ERROR/ActivityManager(96):   suspend: 0% = 0% user + 0% kernel
05-17 01:45:27.221: ERROR/ActivityManager(96):   ds2784-battery.: 0% = 0% user + 0% kernel
05-17 01:45:27.221: ERROR/ActivityManager(96):   rild: 0% = 0% user + 0% kernel / faults: 2 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   ancedtaskkiller: 0% = 0% user + 0% kernel / faults: 36 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   ny.lindamanager: 0% = 0% user + 0% kernel / faults: 17 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   com.htc.bgp: 0% = 0% user + 0% kernel / faults: 32 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   ksoftirqd/0: 0% = 0% user + 0% kernel
05-17 01:45:27.221: ERROR/ActivityManager(96):   ish.batterylife: 0% = 0% user + 0% kernel / faults: 26 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   com.android.mms: 0% = 0% user + 0% kernel / faults: 16 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   d.process.acore: 0% = 0% user + 0% kernel / faults: 17 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):  +ik.application: 0% = 0% user + 0% kernel
05-17 01:45:27.221: ERROR/ActivityManager(96):  +flush-31:0: 0% = 0% user + 0% kernel
05-17 01:45:27.221: ERROR/ActivityManager(96):  +ik.application: 0% = 0% user + 0% kernel
05-17 01:45:27.221: ERROR/ActivityManager(96):  -flush-179:0: 0% = 0% user + 0% kernel
05-17 01:45:27.221: ERROR/ActivityManager(96):  -flush-7:8: 0% = 0% user + 0% kernel
05-17 01:45:27.221: ERROR/ActivityManager(96):  -flush-31:0: 0% = 0% user + 0% kernel
05-17 01:45:27.221: ERROR/ActivityManager(96): TOTAL: 23% = 20% user + 2% kernel + 0% irq
05-17 01:45:27.491: INFO/Process(96): Sending signal. PID: 27629 SIG: 3
05-17 01:45:27.491: INFO/dalvikvm(27629): threadid=3: reacting to signal 3
05-17 01:45:27.691: INFO/Process(96): Sending signal. PID: 96 SIG: 3
05-17 01:45:27.691: INFO/dalvikvm(96): threadid=3: reacting to signal 3

有时我得到这个:

05-17 01:36:59.841: INFO/task(27583): after NativeCall
05-17 01:36:59.841: INFO/task(27583): in postExecute
05-17 01:36:59.953: INFO/DEBUG(11783): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
05-17 01:36:59.953: INFO/DEBUG(11783): Build fingerprint: 'htc_wwe/htc_bravo/bravo/bravo:2.2/FRF91/293415:user/release-keys'
05-17 01:36:59.953: INFO/DEBUG(11783): pid: 27583, tid: 27583  >>> my.test.application <<<
05-17 01:36:59.953: INFO/DEBUG(11783): signal 11 (SIGSEGV), fault addr ffdbb660
05-17 01:36:59.953: INFO/DEBUG(11783):  r0 00000310  r1 002db970  r2 002db660  r3 afd42328
05-17 01:36:59.953: INFO/DEBUG(11783):  r4 1ff5bf9e  r5 afd4372c  r6 0000181f  r7 ffadfcf1
05-17 01:36:59.953: INFO/DEBUG(11783):  r8 bebb3470  r9 41873c1c  10 41873c04  fp bebb37b8
05-17 01:36:59.953: INFO/DEBUG(11783):  ip ffadfcf0  sp bebb33b8  lr afd0c6b5  pc afd0c192  cpsr 20000030
05-17 01:36:59.953: INFO/DEBUG(11783):  d0  6472656767756265  d1  6f6e5f746e65696e
05-17 01:36:59.953: INFO/DEBUG(11783):  d2  7379732f3a70692e  d3  6d6172662f6d6578
05-17 01:36:59.953: INFO/DEBUG(11783):  d4  72662f6b726f7765  d5  2d6b726f77656d61
05-17 01:36:59.953: INFO/DEBUG(11783):  d6  3a6b70612e736572  d7  0000000100000000
05-17 01:36:59.953: INFO/DEBUG(11783):  d8  000000004635d958  d9  4385800000000000
05-17 01:36:59.953: INFO/DEBUG(11783):  d10 00000000437d0000  d11 0000000000000000
05-17 01:36:59.953: INFO/DEBUG(11783):  d12 0000000000000000  d13 0000000000000000
05-17 01:36:59.953: INFO/DEBUG(11783):  d14 0000000000000000  d15 0000000000000000
05-17 01:36:59.953: INFO/DEBUG(11783):  d16 0000000b0000000a  d17 c070100000000000
05-17 01:36:59.953: INFO/DEBUG(11783):  d18 4035000000000000  d19 0000000000000000
05-17 01:36:59.953: INFO/DEBUG(11783):  d20 3ff0000000000000  d21 8000000000000000
05-17 01:36:59.953: INFO/DEBUG(11783):  d22 c035000000000000  d23 ff00080008000700
05-17 01:36:59.953: INFO/DEBUG(11783):  d24 ff00080008000700  d25 ff00080008000700
05-17 01:36:59.953: INFO/DEBUG(11783):  d26 0100010001000100  d27 0100010001000100
05-17 01:36:59.953: INFO/DEBUG(11783):  d28 0100010001000100  d29 3ff0000000000000
05-17 01:36:59.953: INFO/DEBUG(11783):  d30 0000000000000000  d31 3ff0000000000000
05-17 01:36:59.953: INFO/DEBUG(11783):  scr 60000012
05-17 01:37:00.031: INFO/DEBUG(11783):          #00  pc 0000c192  /system/lib/libc.so
05-17 01:37:00.061: INFO/DEBUG(11783):          #01  pc 0000c6b0  /system/lib/libc.so
05-17 01:37:00.061: INFO/DEBUG(11783):          #02  pc 0000cd9e  /system/lib/libc.so
05-17 01:37:00.071: INFO/DEBUG(11783):          #03  pc 00019732  /system/lib/libutils.so
05-17 01:37:00.071: INFO/DEBUG(11783):          #04  pc 00048c9a  /system/lib/libandroid_runtime.so
05-17 01:37:00.071: INFO/DEBUG(11783):          #05  pc 00017034  /system/lib/libdvm.so
05-17 01:37:00.071: INFO/DEBUG(11783):          #06  pc 00045784  /system/lib/libdvm.so
05-17 01:37:00.071: INFO/DEBUG(11783):          #07  pc 0001bfa0  /system/lib/libdvm.so
05-17 01:37:00.071: INFO/DEBUG(11783):          #08  pc 00022c04  /system/lib/libdvm.so
05-17 01:37:00.081: INFO/DEBUG(11783):          #09  pc 00021aa0  /system/lib/libdvm.so
05-17 01:37:00.081: INFO/DEBUG(11783):          #10  pc 0005d162  /system/lib/libdvm.so
05-17 01:37:00.081: INFO/DEBUG(11783):          #11  pc 000659ec  /system/lib/libdvm.so
05-17 01:37:00.081: INFO/DEBUG(11783):          #12  pc 0001bfa0  /system/lib/libdvm.so
05-17 01:37:00.081: INFO/DEBUG(11783):          #13  pc 00022c04  /system/lib/libdvm.so
05-17 01:37:00.081: INFO/DEBUG(11783):          #14  pc 00021aa0  /system/lib/libdvm.so
05-17 01:37:00.081: INFO/DEBUG(11783):          #15  pc 0005cfa0  /system/lib/libdvm.so
05-17 01:37:00.091: INFO/DEBUG(11783):          #16  pc 000480fe  /system/lib/libdvm.so
05-17 01:37:00.091: INFO/DEBUG(11783):          #17  pc 0002ffbc  /system/lib/libandroid_runtime.so
05-17 01:37:00.091: INFO/DEBUG(11783):          #18  pc 000310b8  /system/lib/libandroid_runtime.so
05-17 01:37:00.091: INFO/DEBUG(11783):          #19  pc 00008ca8  /system/bin/app_process
05-17 01:37:00.091: INFO/DEBUG(11783):          #20  pc 0000d430  /system/lib/libc.so
05-17 01:37:00.091: INFO/DEBUG(11783): code around pc:
05-17 01:37:00.091: INFO/DEBUG(11783): afd0c170 c004f8c2 f0436843 f8c00c01 e09ec004 
05-17 01:37:00.091: INFO/DEBUG(11783): afd0c180 0403f040 ea4f6054 f04c04dc 2c1f0701 
05-17 01:37:00.091: INFO/DEBUG(11783): afd0c190 f841604f d81dc00c c138f8df 070ceb03 
05-17 01:37:00.091: INFO/DEBUG(11783): afd0c1a0 0624f107 500cf853 00c4eb06 fa162601 
05-17 01:37:00.091: INFO/DEBUG(11783): afd0c1b0 422cf404 432cd104 400cf843 e0044603 
05-17 01:37:00.091: INFO/DEBUG(11783): code around lr:
05-17 01:37:00.091: INFO/DEBUG(11783): afd0c694 0f41f115 f04fbf88 d80c35ff 350b4927 
05-17 01:37:00.091: INFO/DEBUG(11783): afd0c6a4 0507f025 68431860 4628b12b fc1cf7ff 
05-17 01:37:00.101: INFO/DEBUG(11783): afd0c6b4 28004606 4e21d132 689119a2 d819428d 
05-17 01:37:00.101: INFO/DEBUG(11783): afd0c6c4 69561b4b d9082b0f 60931970 0c01f043 
05-17 01:37:00.101: INFO/DEBUG(11783): afd0c6d4 f8c06150 50c3c004 2300e017 61536093 
05-17 01:37:00.101: INFO/DEBUG(11783): stack:
05-17 01:37:00.101: INFO/DEBUG(11783):     bebb3378  afd4372c  /system/lib/libc.so
05-17 01:37:00.101: INFO/DEBUG(11783):     bebb337c  00000000  
05-17 01:37:00.101: INFO/DEBUG(11783):     bebb3380  00357588  [heap]
05-17 01:37:00.101: INFO/DEBUG(11783):     bebb3384  0000a000  [heap]
05-17 01:37:00.101: INFO/DEBUG(11783):     bebb3388  bebb3470  [stack]
05-17 01:37:00.101: INFO/DEBUG(11783):     bebb338c  41873c1c  
05-17 01:37:00.101: INFO/DEBUG(11783):     bebb3390  41873c04  
05-17 01:37:00.101: INFO/DEBUG(11783):     bebb3394  afd0be7d  /system/lib/libc.so
05-17 01:37:00.101: INFO/DEBUG(11783):     bebb3398  00000000  
05-17 01:37:00.101: INFO/DEBUG(11783):     bebb339c  00000000  
05-17 01:37:00.111: INFO/DEBUG(11783):     bebb33a0  00001404  
05-17 01:37:00.111: INFO/DEBUG(11783):     bebb33a4  bebb33e8  [stack]
05-17 01:37:00.111: INFO/DEBUG(11783):     bebb33a8  fffffff1  
05-17 01:37:00.111: INFO/DEBUG(11783):     bebb33ac  bebb33e8  [stack]
05-17 01:37:00.111: INFO/DEBUG(11783):     bebb33b0  df002777  
05-17 01:37:00.111: INFO/DEBUG(11783):     bebb33b4  e3a070ad  
05-17 01:37:00.111: INFO/DEBUG(11783): #00 bebb33b8  00000308  
05-17 01:37:00.111: INFO/DEBUG(11783):     bebb33bc  afd42328  /system/lib/libc.so
05-17 01:37:00.111: INFO/DEBUG(11783):     bebb33c0  afd438e4  /system/lib/libc.so
05-17 01:37:00.111: INFO/DEBUG(11783):     bebb33c4  afd1040c  /system/lib/libc.so
05-17 01:37:00.111: INFO/DEBUG(11783):     bebb33c8  00000003  
05-17 01:37:00.111: INFO/DEBUG(11783):     bebb33cc  afd43860  /system/lib/libc.so
05-17 01:37:00.111: INFO/DEBUG(11783):     bebb33d0  00000003  
05-17 01:37:00.121: INFO/DEBUG(11783):     bebb33d4  afd42328  /system/lib/libc.so
05-17 01:37:00.121: INFO/DEBUG(11783):     bebb33d8  00000310  
05-17 01:37:00.121: INFO/DEBUG(11783):     bebb33dc  00000003  
05-17 01:37:00.121: INFO/DEBUG(11783):     bebb33e0  00000308  
05-17 01:37:00.121: INFO/DEBUG(11783):     bebb33e4  afd0c6b5  /system/lib/libc.so
05-17 01:37:00.121: INFO/DEBUG(11783): #01 bebb33e8  432c3dd3  /system/framework/framework-res.apk
05-17 01:37:00.121: INFO/DEBUG(11783):     bebb33ec  00000000  
05-17 01:37:00.121: INFO/DEBUG(11783):     bebb33f0  00000187  
05-17 01:37:00.121: INFO/DEBUG(11783):     bebb33f4  00298c90  [heap]
05-17 01:37:00.121: INFO/DEBUG(11783):     bebb33f8  00000000  
05-17 01:37:00.121: INFO/DEBUG(11783):     bebb33fc  00000308  
05-17 01:37:00.121: INFO/DEBUG(11783):     bebb3400  00000000  
05-17 01:37:00.121: INFO/DEBUG(11783):     bebb3404  00236320  [heap]
05-17 01:37:00.121: INFO/DEBUG(11783):     bebb3408  00298988  [heap]
05-17 01:37:00.131: INFO/DEBUG(11783):     bebb340c  a8126a18  /system/lib/libutils.so
05-17 01:37:00.131: INFO/DEBUG(11783):     bebb3410  00000308  
05-17 01:37:00.131: INFO/DEBUG(11783):     bebb3414  afd0cda1  /system/lib/libc.so
05-17 01:37:00.861: INFO/ActivityManager(96): Process my.test.application (pid 27583) has died.

在第二种情况下它没有释放但活动崩溃了...

编辑:我在本机部分发现了奇怪的内存泄漏,当我修复它时,一切都好:)

I have weird problem with my Activity and I dont know what to do...

private Bitmap mBitmap;

@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    mBitmap = initBitmap();
}


@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.menuItemNew:
            doSomething();
            return true;    
        case R.id.menuItemNative:
            showList();
            return true;

    }

    return(super.onOptionsItemSelected(item));
}

private boolean selected;

private void showList() {
    CharSequence[] items = {"First", "Second"};

    selected = false;
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("Selection mode");
    builder.setSingleChoiceItems(items, 0, new OnClickListener() {

        public void onClick(DialogInterface dialog, int item) {
            selected = item == 1;
        }
    });
    builder.setPositiveButton("OK", new OnClickListener() {

        public void onClick(DialogInterface dialog, int which) {
            if (selected) {
                new NativeTask().execute();
            }
        }
    });
    Dialog dia = builder.create();
    dia.show();

}

private class NativeTask extends AsyncTask<String, String, String> {

    @Override
    protected String doInBackground(String... params) {
        Log.i("task", "before Native Call");
        int buffer[] = new int[mBitmap.getWidth() * mBitmap.getHeight()];
        mBitmap.getPixels(buffer, 0, mBitmap.getWidth(), 0, 0, mBitmap.getWidth(), mBitmap.getHeight());
        int[] result = NativeLibrary.process(pixels);
        Log.i("task", "after Native Call");

        return null;
    }

    @Override
    protected void onProgressUpdate(String... progress) {
        Log.i("task", "in progress");
    }

    @Override
    protected void onPostExecute(String a) {

        Log.i("task", "in postExecute");
    }
}

This is relevant part of my Activity. As you see, I have menu there and if you click on second item, dialog with list of 2 items appears. Then if you select and confirm second item in list, AsyncTask is being executed and some method from native code is called.

Looks good (for me), but some problem is there - when I select second item from list, native method is correctly called... but Activity freezes.

Log contains all three messages:

  • task: before Native call
  • task: after Native call
  • task: in postExecute

I don't know what more I have to do. Am I missing something? Why is my Activity freezing when I use AsyncTask? Is problem I'm working with Bitmap inside AsyncTask?
NativeLibrary.process(int[]) return correct array, no problem there.... so WHY?

I will be happy for any tip!

P.S: I'm sorry for my bad english

EDIT: Here's log for freeze

05-17 01:44:53.831: INFO/task(27629): after Natvive Call
05-17 01:44:53.831: INFO/task(27629): in postExecute
05-17 01:44:56.391: DEBUG/dalvikvm(24817): GC_EXPLICIT freed 7 objects / 280 bytes in 67ms
05-17 01:45:05.991: DEBUG/dalvikvm(16702): GC_EXPLICIT freed 103 objects / 3760 bytes in 669ms
05-17 01:45:24.011: DEBUG/dalvikvm(16635): GC_EXPLICIT freed 7 objects / 280 bytes in 690ms
05-17 01:45:27.181: WARN/WindowManager(96): Key dispatching timed out sending to my.test.application/my.test.application.NativeActivity
05-17 01:45:27.181: WARN/WindowManager(96): Previous dispatch state: {{KeyEvent{action=0 code=82 repeat=0 meta=0 scancode=139 mFlags=8} to Window{46518640 my.test.application/my.test.application.NativeActivity paused=false} @ 1305589511983 lw=Window{46518640 my.test.application/my.test.application.NativeActivity paused=false} lb=android.os.BinderProxy@46426770 fin=false gfw=true ed=true tts=0 wf=false fp=false mcf=Window{46518640 my.test.application/my.test.application.NativeActivity paused=false}}}
05-17 01:45:27.181: WARN/WindowManager(96): Current dispatch state: {{KeyEvent{action=1 code=82 repeat=0 meta=0 scancode=139 mFlags=8} to Window{46518640 my.test.application/my.test.application.NativeActivity paused=false} @ 1305589527184 lw=Window{46518640 my.test.application/my.test.application.NativeActivity paused=false} lb=android.os.BinderProxy@46426770 fin=false gfw=true ed=true tts=0 wf=false fp=false mcf=Window{46518640 my.test.application/my.test.application.NativeActivity paused=false}}}
05-17 01:45:27.181: WARN/WindowManager(96): waitedFor: 15000, keyDispatchingTimeout: 15000
05-17 01:45:27.221: ERROR/ActivityManager(96): ANR in my.test.application (my.test.application/.NativeActivity)
05-17 01:45:27.221: ERROR/ActivityManager(96): Reason: keyDispatchingTimedOut
05-17 01:45:27.221: ERROR/ActivityManager(96): Load: 1.73 / 1.48 / 1.71
05-17 01:45:27.221: ERROR/ActivityManager(96): CPU usage from 682640ms to 23ms ago:
05-17 01:45:27.221: ERROR/ActivityManager(96):   system_server: 2% = 1% user + 0% kernel / faults: 14389 minor 3 major
05-17 01:45:27.221: ERROR/ActivityManager(96):   com.htc.album: 1% = 1% user + 0% kernel / faults: 23991 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   logcat: 0% = 0% user + 0% kernel
05-17 01:45:27.221: ERROR/ActivityManager(96):   akmd: 0% = 0% user + 0% kernel / faults: 828 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   debuggerd: 0% = 0% user + 0% kernel / faults: 49 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   d.process.acore: 0% = 0% user + 0% kernel / faults: 1272 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   gets.SenseClock: 0% = 0% user + 0% kernel / faults: 1212 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   d.process.media: 0% = 0% user + 0% kernel / faults: 285 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   rmClockPlusDock: 0% = 0% user + 0% kernel / faults: 298 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   m.android.phone: 0% = 0% user + 0% kernel / faults: 36 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   harrison.agenda: 0% = 0% user + 0% kernel / faults: 264 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   adbd: 0% = 0% user + 0% kernel / faults: 57 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   LocationService: 0% = 0% user + 0% kernel / faults: 169 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   e.process.gapps: 0% = 0% user + 0% kernel / faults: 225 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   mpz.audioplayer: 0% = 0% user + 0% kernel / faults: 130 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   com.htc.bg: 0% = 0% user + 0% kernel / faults: 91 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   panel_on/0: 0% = 0% user + 0% kernel
05-17 01:45:27.221: ERROR/ActivityManager(96):   w1_bus_master1: 0% = 0% user + 0% kernel
05-17 01:45:27.221: ERROR/ActivityManager(96):   zygote: 0% = 0% user + 0% kernel / faults: 342 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   .android.htcime: 0% = 0% user + 0% kernel / faults: 118 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   synaptics_wq: 0% = 0% user + 0% kernel
05-17 01:45:27.221: ERROR/ActivityManager(96):   events/0: 0% = 0% user + 0% kernel
05-17 01:45:27.221: ERROR/ActivityManager(96):   suspend: 0% = 0% user + 0% kernel
05-17 01:45:27.221: ERROR/ActivityManager(96):   ds2784-battery.: 0% = 0% user + 0% kernel
05-17 01:45:27.221: ERROR/ActivityManager(96):   rild: 0% = 0% user + 0% kernel / faults: 2 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   ancedtaskkiller: 0% = 0% user + 0% kernel / faults: 36 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   ny.lindamanager: 0% = 0% user + 0% kernel / faults: 17 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   com.htc.bgp: 0% = 0% user + 0% kernel / faults: 32 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   ksoftirqd/0: 0% = 0% user + 0% kernel
05-17 01:45:27.221: ERROR/ActivityManager(96):   ish.batterylife: 0% = 0% user + 0% kernel / faults: 26 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   com.android.mms: 0% = 0% user + 0% kernel / faults: 16 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):   d.process.acore: 0% = 0% user + 0% kernel / faults: 17 minor
05-17 01:45:27.221: ERROR/ActivityManager(96):  +ik.application: 0% = 0% user + 0% kernel
05-17 01:45:27.221: ERROR/ActivityManager(96):  +flush-31:0: 0% = 0% user + 0% kernel
05-17 01:45:27.221: ERROR/ActivityManager(96):  +ik.application: 0% = 0% user + 0% kernel
05-17 01:45:27.221: ERROR/ActivityManager(96):  -flush-179:0: 0% = 0% user + 0% kernel
05-17 01:45:27.221: ERROR/ActivityManager(96):  -flush-7:8: 0% = 0% user + 0% kernel
05-17 01:45:27.221: ERROR/ActivityManager(96):  -flush-31:0: 0% = 0% user + 0% kernel
05-17 01:45:27.221: ERROR/ActivityManager(96): TOTAL: 23% = 20% user + 2% kernel + 0% irq
05-17 01:45:27.491: INFO/Process(96): Sending signal. PID: 27629 SIG: 3
05-17 01:45:27.491: INFO/dalvikvm(27629): threadid=3: reacting to signal 3
05-17 01:45:27.691: INFO/Process(96): Sending signal. PID: 96 SIG: 3
05-17 01:45:27.691: INFO/dalvikvm(96): threadid=3: reacting to signal 3

And sometimes I get this:

05-17 01:36:59.841: INFO/task(27583): after NativeCall
05-17 01:36:59.841: INFO/task(27583): in postExecute
05-17 01:36:59.953: INFO/DEBUG(11783): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
05-17 01:36:59.953: INFO/DEBUG(11783): Build fingerprint: 'htc_wwe/htc_bravo/bravo/bravo:2.2/FRF91/293415:user/release-keys'
05-17 01:36:59.953: INFO/DEBUG(11783): pid: 27583, tid: 27583  >>> my.test.application <<<
05-17 01:36:59.953: INFO/DEBUG(11783): signal 11 (SIGSEGV), fault addr ffdbb660
05-17 01:36:59.953: INFO/DEBUG(11783):  r0 00000310  r1 002db970  r2 002db660  r3 afd42328
05-17 01:36:59.953: INFO/DEBUG(11783):  r4 1ff5bf9e  r5 afd4372c  r6 0000181f  r7 ffadfcf1
05-17 01:36:59.953: INFO/DEBUG(11783):  r8 bebb3470  r9 41873c1c  10 41873c04  fp bebb37b8
05-17 01:36:59.953: INFO/DEBUG(11783):  ip ffadfcf0  sp bebb33b8  lr afd0c6b5  pc afd0c192  cpsr 20000030
05-17 01:36:59.953: INFO/DEBUG(11783):  d0  6472656767756265  d1  6f6e5f746e65696e
05-17 01:36:59.953: INFO/DEBUG(11783):  d2  7379732f3a70692e  d3  6d6172662f6d6578
05-17 01:36:59.953: INFO/DEBUG(11783):  d4  72662f6b726f7765  d5  2d6b726f77656d61
05-17 01:36:59.953: INFO/DEBUG(11783):  d6  3a6b70612e736572  d7  0000000100000000
05-17 01:36:59.953: INFO/DEBUG(11783):  d8  000000004635d958  d9  4385800000000000
05-17 01:36:59.953: INFO/DEBUG(11783):  d10 00000000437d0000  d11 0000000000000000
05-17 01:36:59.953: INFO/DEBUG(11783):  d12 0000000000000000  d13 0000000000000000
05-17 01:36:59.953: INFO/DEBUG(11783):  d14 0000000000000000  d15 0000000000000000
05-17 01:36:59.953: INFO/DEBUG(11783):  d16 0000000b0000000a  d17 c070100000000000
05-17 01:36:59.953: INFO/DEBUG(11783):  d18 4035000000000000  d19 0000000000000000
05-17 01:36:59.953: INFO/DEBUG(11783):  d20 3ff0000000000000  d21 8000000000000000
05-17 01:36:59.953: INFO/DEBUG(11783):  d22 c035000000000000  d23 ff00080008000700
05-17 01:36:59.953: INFO/DEBUG(11783):  d24 ff00080008000700  d25 ff00080008000700
05-17 01:36:59.953: INFO/DEBUG(11783):  d26 0100010001000100  d27 0100010001000100
05-17 01:36:59.953: INFO/DEBUG(11783):  d28 0100010001000100  d29 3ff0000000000000
05-17 01:36:59.953: INFO/DEBUG(11783):  d30 0000000000000000  d31 3ff0000000000000
05-17 01:36:59.953: INFO/DEBUG(11783):  scr 60000012
05-17 01:37:00.031: INFO/DEBUG(11783):          #00  pc 0000c192  /system/lib/libc.so
05-17 01:37:00.061: INFO/DEBUG(11783):          #01  pc 0000c6b0  /system/lib/libc.so
05-17 01:37:00.061: INFO/DEBUG(11783):          #02  pc 0000cd9e  /system/lib/libc.so
05-17 01:37:00.071: INFO/DEBUG(11783):          #03  pc 00019732  /system/lib/libutils.so
05-17 01:37:00.071: INFO/DEBUG(11783):          #04  pc 00048c9a  /system/lib/libandroid_runtime.so
05-17 01:37:00.071: INFO/DEBUG(11783):          #05  pc 00017034  /system/lib/libdvm.so
05-17 01:37:00.071: INFO/DEBUG(11783):          #06  pc 00045784  /system/lib/libdvm.so
05-17 01:37:00.071: INFO/DEBUG(11783):          #07  pc 0001bfa0  /system/lib/libdvm.so
05-17 01:37:00.071: INFO/DEBUG(11783):          #08  pc 00022c04  /system/lib/libdvm.so
05-17 01:37:00.081: INFO/DEBUG(11783):          #09  pc 00021aa0  /system/lib/libdvm.so
05-17 01:37:00.081: INFO/DEBUG(11783):          #10  pc 0005d162  /system/lib/libdvm.so
05-17 01:37:00.081: INFO/DEBUG(11783):          #11  pc 000659ec  /system/lib/libdvm.so
05-17 01:37:00.081: INFO/DEBUG(11783):          #12  pc 0001bfa0  /system/lib/libdvm.so
05-17 01:37:00.081: INFO/DEBUG(11783):          #13  pc 00022c04  /system/lib/libdvm.so
05-17 01:37:00.081: INFO/DEBUG(11783):          #14  pc 00021aa0  /system/lib/libdvm.so
05-17 01:37:00.081: INFO/DEBUG(11783):          #15  pc 0005cfa0  /system/lib/libdvm.so
05-17 01:37:00.091: INFO/DEBUG(11783):          #16  pc 000480fe  /system/lib/libdvm.so
05-17 01:37:00.091: INFO/DEBUG(11783):          #17  pc 0002ffbc  /system/lib/libandroid_runtime.so
05-17 01:37:00.091: INFO/DEBUG(11783):          #18  pc 000310b8  /system/lib/libandroid_runtime.so
05-17 01:37:00.091: INFO/DEBUG(11783):          #19  pc 00008ca8  /system/bin/app_process
05-17 01:37:00.091: INFO/DEBUG(11783):          #20  pc 0000d430  /system/lib/libc.so
05-17 01:37:00.091: INFO/DEBUG(11783): code around pc:
05-17 01:37:00.091: INFO/DEBUG(11783): afd0c170 c004f8c2 f0436843 f8c00c01 e09ec004 
05-17 01:37:00.091: INFO/DEBUG(11783): afd0c180 0403f040 ea4f6054 f04c04dc 2c1f0701 
05-17 01:37:00.091: INFO/DEBUG(11783): afd0c190 f841604f d81dc00c c138f8df 070ceb03 
05-17 01:37:00.091: INFO/DEBUG(11783): afd0c1a0 0624f107 500cf853 00c4eb06 fa162601 
05-17 01:37:00.091: INFO/DEBUG(11783): afd0c1b0 422cf404 432cd104 400cf843 e0044603 
05-17 01:37:00.091: INFO/DEBUG(11783): code around lr:
05-17 01:37:00.091: INFO/DEBUG(11783): afd0c694 0f41f115 f04fbf88 d80c35ff 350b4927 
05-17 01:37:00.091: INFO/DEBUG(11783): afd0c6a4 0507f025 68431860 4628b12b fc1cf7ff 
05-17 01:37:00.101: INFO/DEBUG(11783): afd0c6b4 28004606 4e21d132 689119a2 d819428d 
05-17 01:37:00.101: INFO/DEBUG(11783): afd0c6c4 69561b4b d9082b0f 60931970 0c01f043 
05-17 01:37:00.101: INFO/DEBUG(11783): afd0c6d4 f8c06150 50c3c004 2300e017 61536093 
05-17 01:37:00.101: INFO/DEBUG(11783): stack:
05-17 01:37:00.101: INFO/DEBUG(11783):     bebb3378  afd4372c  /system/lib/libc.so
05-17 01:37:00.101: INFO/DEBUG(11783):     bebb337c  00000000  
05-17 01:37:00.101: INFO/DEBUG(11783):     bebb3380  00357588  [heap]
05-17 01:37:00.101: INFO/DEBUG(11783):     bebb3384  0000a000  [heap]
05-17 01:37:00.101: INFO/DEBUG(11783):     bebb3388  bebb3470  [stack]
05-17 01:37:00.101: INFO/DEBUG(11783):     bebb338c  41873c1c  
05-17 01:37:00.101: INFO/DEBUG(11783):     bebb3390  41873c04  
05-17 01:37:00.101: INFO/DEBUG(11783):     bebb3394  afd0be7d  /system/lib/libc.so
05-17 01:37:00.101: INFO/DEBUG(11783):     bebb3398  00000000  
05-17 01:37:00.101: INFO/DEBUG(11783):     bebb339c  00000000  
05-17 01:37:00.111: INFO/DEBUG(11783):     bebb33a0  00001404  
05-17 01:37:00.111: INFO/DEBUG(11783):     bebb33a4  bebb33e8  [stack]
05-17 01:37:00.111: INFO/DEBUG(11783):     bebb33a8  fffffff1  
05-17 01:37:00.111: INFO/DEBUG(11783):     bebb33ac  bebb33e8  [stack]
05-17 01:37:00.111: INFO/DEBUG(11783):     bebb33b0  df002777  
05-17 01:37:00.111: INFO/DEBUG(11783):     bebb33b4  e3a070ad  
05-17 01:37:00.111: INFO/DEBUG(11783): #00 bebb33b8  00000308  
05-17 01:37:00.111: INFO/DEBUG(11783):     bebb33bc  afd42328  /system/lib/libc.so
05-17 01:37:00.111: INFO/DEBUG(11783):     bebb33c0  afd438e4  /system/lib/libc.so
05-17 01:37:00.111: INFO/DEBUG(11783):     bebb33c4  afd1040c  /system/lib/libc.so
05-17 01:37:00.111: INFO/DEBUG(11783):     bebb33c8  00000003  
05-17 01:37:00.111: INFO/DEBUG(11783):     bebb33cc  afd43860  /system/lib/libc.so
05-17 01:37:00.111: INFO/DEBUG(11783):     bebb33d0  00000003  
05-17 01:37:00.121: INFO/DEBUG(11783):     bebb33d4  afd42328  /system/lib/libc.so
05-17 01:37:00.121: INFO/DEBUG(11783):     bebb33d8  00000310  
05-17 01:37:00.121: INFO/DEBUG(11783):     bebb33dc  00000003  
05-17 01:37:00.121: INFO/DEBUG(11783):     bebb33e0  00000308  
05-17 01:37:00.121: INFO/DEBUG(11783):     bebb33e4  afd0c6b5  /system/lib/libc.so
05-17 01:37:00.121: INFO/DEBUG(11783): #01 bebb33e8  432c3dd3  /system/framework/framework-res.apk
05-17 01:37:00.121: INFO/DEBUG(11783):     bebb33ec  00000000  
05-17 01:37:00.121: INFO/DEBUG(11783):     bebb33f0  00000187  
05-17 01:37:00.121: INFO/DEBUG(11783):     bebb33f4  00298c90  [heap]
05-17 01:37:00.121: INFO/DEBUG(11783):     bebb33f8  00000000  
05-17 01:37:00.121: INFO/DEBUG(11783):     bebb33fc  00000308  
05-17 01:37:00.121: INFO/DEBUG(11783):     bebb3400  00000000  
05-17 01:37:00.121: INFO/DEBUG(11783):     bebb3404  00236320  [heap]
05-17 01:37:00.121: INFO/DEBUG(11783):     bebb3408  00298988  [heap]
05-17 01:37:00.131: INFO/DEBUG(11783):     bebb340c  a8126a18  /system/lib/libutils.so
05-17 01:37:00.131: INFO/DEBUG(11783):     bebb3410  00000308  
05-17 01:37:00.131: INFO/DEBUG(11783):     bebb3414  afd0cda1  /system/lib/libc.so
05-17 01:37:00.861: INFO/ActivityManager(96): Process my.test.application (pid 27583) has died.

in this second case it doesnt freese but Activity crashes...

EDIT: I found weird memory leak in Native part and when I fixed it, everything is ok :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

携余温的黄昏 2024-11-14 19:09:19

我很困惑,因为 NativeTask 的声明声明它需要 String 类型的参数,如下所示:

new NativeTask().execute(string1);

不是

new NativeTask().execute();

,您似乎也没有在 doInBackground 中使用字符串参数:

String inString= params[0];

希望有帮助,
日航

I am confused as the declaration of NativeTask declares that it takes a Parameter(s) of type String as in:

new NativeTask().execute(string1);

not

new NativeTask().execute();

also you do not seem to use the string parameter in doInBackground as:

String inString= params[0];

Hope that helps,
JAL

失眠症患者 2024-11-14 19:09:19

我发现本机部分存在一些内存泄漏。当我修复它时,一切正常。

I found some memory leak in native part. When I fixed it, everything works correct.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文