2017-12-22 29 views
0

데이터를 요청하고 UI를 업데이트하는 AsynTask가 있지만 작업을 호출 할 때 가끔 onPostExecute()가 호출되지 않습니다. AsyncTask onPostExecute()가 호출되지 않는 경우가 있음

나는 실행 흐름을 확인하기 위해 로그를 추가 onPostExecute는 마지막 로그 호출되지 때 doInBacground()의 반환하기 전에 하나입니다 ->
는 앱이 사람이 비슷한 경험이 정지?

public class dataLoadTask extends AsyncTask<Boolean, Void, Boolean> {  
     JSONObject token;  
     public dataLoadTask(JSONObject token) { 
      if (token != null) { 
       this.token = token; 
      } 
     }  
     @Override 
     protected Boolean doInBackground(Boolean... params) { 
      JSONArray response; 
      Boolean result = false; 
      try {      
       loadingData = true; 
       response = NetworkUtils.schoolNotifications(token);      
       notifications = parseResponse(response); 
       Collections.sort(notifications, new NotificationsComparator()); 
       loadingData = false;      
       JSONArray chatsJSON = NetworkUtils.schoolChats(token);      
       chats = new ArrayList<>(); 
       for (int i = 0; i < chatsJSON.length(); i++) { 
        JSONObject json_chat = (JSONObject) chatsJSON.get(i); 
        Chat chat = new Chat(json_chat); 
        chats.add(chat);  
       } 
       Collections.sort(chats, new ChatsComparator());       
       result = true;       
      } catch (Exception e) {     
       e.printStackTrace(); 
      }      
      return result;  
     }    
     @Override 
     protected void onPostExecute(Boolean result) {     
      if (result) {      
       bottomNavigation.setOnNavigationItemSelectedListener 
         (new BottomNavigationView.OnNavigationItemSelectedListener() { 
          @Override 
          public boolean onNavigationItemSelected(MenuItem item) { 
           Fragment selectedFragment = null; 
           String fragmentTag = "";         getSupportFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE); 
           switch (item.getItemId()) { 
            case R.id.action_home: 
             selectedFragment = HomeFragment.newInstance(); 
             myBundle.putParcelableArrayList("notifications", notifications); 
             myBundle.putParcelableArrayList("chats", chats); 
             myBundle.putParcelableArrayList("schedule", schedule); 
             fragmentTag = HOME_TAG; 
             break; 
            case R.id.action_subjects: 
             selectedFragment = SubjectsFragment.newInstance(); 
             myBundle.putParcelableArrayList("notifications", notifications); 
             myBundle.putParcelableArrayList("subjects", subjects); 
             break; 
            case R.id.action_tasks: 
             selectedFragment = TasksFragment.newInstance(); 
             myBundle.putParcelableArrayList("notifications", notifications); 
             break; 
            case R.id.action_chats: 
             selectedFragment = ChatsFragment.newInstance(); 
             myBundle.putParcelableArrayList("users", users); 
             myBundle.putParcelableArrayList("chats", chats); 
             fragmentTag = CHAT_TAG; 
             break; 
            case R.id.action_new_notification: 
             selectedFragment = NewNotificationFragment.newInstance(); 
             myBundle.putParcelableArrayList("classes", classes); 

             break;  
           }         getSupportActionBar().setDisplayHomeAsUpEnabled(false); 
           selectedFragment.setArguments(myBundle); 
           FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 
           transaction.replace(R.id.frame_layout, selectedFragment, fragmentTag); 
           transaction.commit(); 
           return true; 
          } 
         });     
       myBundle.putParcelableArrayList("notifications", notifications); 
       myBundle.putParcelableArrayList("chats", chats); 
       myBundle.putParcelableArrayList("schedule", schedule); 
       myBundle.putBoolean("startup", false); 
       Log.i("TESTTTTTTTTTTT", "9"); 
       HomeFragment activeFragment = (HomeFragment) getSupportFragmentManager().findFragmentByTag(HOME_TAG); 
       Boolean homeActive = activeFragment != null && activeFragment.isVisible() ? true : false; 
       if (!loadingNewData || (loadingNewData && homeActive)) { 
        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 
        HomeFragment homeFragment = HomeFragment.newInstance(); 
        homeFragment.setArguments(myBundle); 
        transaction.replace(R.id.frame_layout, homeFragment, HOME_TAG); 
        transaction.commit(); 
        progressBar.setVisibility(View.INVISIBLE); 
        bottomNavigation.setEnabled(true); 
        profilePhoto.setEnabled(true); 
       } else 
        loadingNewData = false;     
       ChatsFragment activeChatsFragment = (ChatsFragment) getSupportFragmentManager().findFragmentByTag(CHAT_TAG); 
       Boolean chatsActive = activeChatsFragment != null && activeChatsFragment.isVisible() ? true : false; 
       if (chatsActive) { 
        activeChatsFragment.updateAdapter(chats); 
       }     
      } else { 
       Intent intent = new Intent(MainActivity.this, LoginActivity.class); 
       startActivity(intent); 
      }    
      loadDataProcessRunning = false;  
     } 
    } 

로그 :

12-22 12:23:27.916 15252-15252/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 01 
12-22 12:23:27.916 15252-15292/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 1 
12-22 12:23:29.549 15252-15292/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 2 
12-22 12:23:29.560 15252-15292/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 3 
12-22 12:23:29.668 15252-15292/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 4 
12-22 12:23:29.668 15252-15292/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 5 
12-22 12:23:29.669 15252-15292/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 55 
12-22 12:23:29.669 15252-15292/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: true 
12-22 12:23:29.681 15252-15252/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 6 
12-22 12:23:29.682 15252-15252/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 7 
12-22 12:23:29.682 15252-15252/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 8 
12-22 12:23:29.682 15252-15252/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 9 
12-22 12:23:29.682 15252-15252/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 10 
12-22 12:23:29.683 15252-15252/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 11 
12-22 12:23:29.684 15252-15252/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 12 
12-22 12:23:29.684 15252-15252/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 13 
12-22 12:23:29.748 15252-15252/com.cathedralsw.schoolteacher E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /data/user/0/com.cathedralsw.schoolteacher/files/5 (No such file or directory) 
12-22 12:23:29.876 15252-15252/com.cathedralsw.schoolteacher E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /data/user/0/com.cathedralsw.schoolteacher/files/5 (No such file or directory) 
12-22 12:23:29.881 15252-15252/com.cathedralsw.schoolteacher E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /data/user/0/com.cathedralsw.schoolteacher/files/5 (No such file or directory) 
12-22 12:23:29.883 15252-15257/com.cathedralsw.schoolteacher I/art: Do partial code cache collection, code=23KB, data=30KB 
12-22 12:23:29.884 15252-15257/com.cathedralsw.schoolteacher I/art: After code cache collection, code=23KB, data=30KB 
12-22 12:23:29.884 15252-15257/com.cathedralsw.schoolteacher I/art: Increasing code cache capacity to 128KB 
12-22 12:23:29.887 15252-15252/com.cathedralsw.schoolteacher E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /data/user/0/com.cathedralsw.schoolteacher/files/5 (No such file or directory) 
12-22 12:23:29.910 15252-15252/com.cathedralsw.schoolteacher E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /data/user/0/com.cathedralsw.schoolteacher/files/5 (No such file or directory) 
12-22 12:23:29.924 15252-15252/com.cathedralsw.schoolteacher E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /data/user/0/com.cathedralsw.schoolteacher/files/6 (No such file or directory) 
12-22 12:23:34.445 15252-15252/com.cathedralsw.schoolteacher I/hwaps: JNI_OnLoad 
12-22 12:23:35.168 15252-15257/com.cathedralsw.schoolteacher I/art: Do partial code cache collection, code=52KB, data=60KB 
12-22 12:23:35.169 15252-15257/com.cathedralsw.schoolteacher I/art: After code cache collection, code=51KB, data=60KB 
12-22 12:23:35.169 15252-15257/com.cathedralsw.schoolteacher I/art: Increasing code cache capacity to 256KB 
12-22 12:23:35.530 15252-15252/com.cathedralsw.schoolteacher E/RecyclerView: No adapter attached; skipping layout 
12-22 12:23:35.575 15252-15252/com.cathedralsw.schoolteacher I/Choreographer: Skipped 57 frames! The application may be doing too much work on its main thread. 
12-22 12:23:35.886 15252-15279/com.cathedralsw.schoolteacher I/FA: Tag Manager is not found and thus will not be used 
12-22 12:23:36.899 15252-15252/com.cathedralsw.schoolteacher I/TextInputLayout: EditText added is not a TextInputEditText. Please switch to using that class instead. 
12-22 12:23:38.361 15252-15252/com.cathedralsw.schoolteacher I/HwPointEventFilter: do not support AFT because of no config 
12-22 12:23:41.346 15252-15252/com.cathedralsw.schoolteacher I/HwSecImmHelper: mSecurityInputMethodService is null 
12-22 12:23:41.361 15252-15252/com.cathedralsw.schoolteacher E/SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 
12-22 12:23:41.361 15252-15252/com.cathedralsw.schoolteacher E/SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 
12-22 12:23:41.372 15252-15252/com.cathedralsw.schoolteacher E/SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 
12-22 12:23:41.372 15252-15252/com.cathedralsw.schoolteacher E/SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 
12-22 12:23:42.755 15252-15252/com.cathedralsw.schoolteacher W/IInputConnectionWrapper: finishComposingText on inactive InputConnection 
12-22 12:23:42.759 15252-15252/com.cathedralsw.schoolteacher E/SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 
12-22 12:23:42.759 15252-15252/com.cathedralsw.schoolteacher E/SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 
12-22 12:23:42.766 15252-15252/com.cathedralsw.schoolteacher E/SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 
12-22 12:23:42.766 15252-15252/com.cathedralsw.schoolteacher E/SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 
12-22 12:23:44.760 15252-15252/com.cathedralsw.schoolteacher I/HwSecImmHelper: mSecurityInputMethodService is null 
12-22 12:23:44.841 15252-15252/com.cathedralsw.schoolteacher I/HwPointEventFilter: do not support AFT because of no config 
12-22 12:23:46.033 15252-15252/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 01 
12-22 12:23:46.034 15252-15292/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 1 
12-22 12:23:46.059 15252-15252/com.cathedralsw.schoolteacher I/HwSecImmHelper: mSecurityInputMethodService is null 
12-22 12:23:47.798 15252-15292/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 2 
12-22 12:23:47.808 15252-15292/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 3 
12-22 12:23:47.820 15252-15252/com.cathedralsw.schoolteacher I/Choreographer: Skipped 106 frames! The application may be doing too much work on its main thread. 
12-22 12:23:47.902 15252-15292/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 4 
12-22 12:23:47.903 15252-15292/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 5 
12-22 12:23:47.903 15252-15292/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 55 
12-22 12:23:47.903 15252-15292/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: true 
12-22 12:23:48.551 15252-15257/com.cathedralsw.schoolteacher I/art: Do full code cache collection, code=122KB, data=123KB 
12-22 12:23:48.552 15252-15257/com.cathedralsw.schoolteacher I/art: After code cache collection, code=100KB, data=86KB 
12-22 12:23:48.644 15252-15252/com.cathedralsw.schoolteacher I/HwPointEventFilter: do not support AFT because of no config 
12-22 12:23:48.655 15252-15252/com.cathedralsw.schoolteacher W/IInputConnectionWrapper: getExtractedText on inactive InputConnection 
12-22 12:23:48.656 15252-15252/com.cathedralsw.schoolteacher I/Choreographer: Skipped 49 frames! The application may be doing too much work on its main thread. 
12-22 12:23:48.720 15252-15252/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 6 
12-22 12:23:48.720 15252-15252/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 7 
12-22 12:23:48.720 15252-15252/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 8 
12-22 12:23:48.720 15252-15252/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 9 
12-22 12:23:48.720 15252-15252/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 10 
12-22 12:23:48.720 15252-15252/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 11 
12-22 12:23:48.720 15252-15252/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 12 
12-22 12:23:48.720 15252-15252/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 13 
12-22 12:23:48.720 15252-15252/com.cathedralsw.schoolteacher W/IInputConnectionWrapper: getTextBeforeCursor on inactive InputConnection 
12-22 12:23:48.747 15252-15252/com.cathedralsw.schoolteacher W/IInputConnectionWrapper: getSelectedText on inactive InputConnection 
12-22 12:23:48.751 15252-15252/com.cathedralsw.schoolteacher W/IInputConnectionWrapper: getTextAfterCursor on inactive InputConnection 
12-22 12:23:48.752 15252-15252/com.cathedralsw.schoolteacher W/IInputConnectionWrapper: getExtractedText on inactive InputConnection 
12-22 12:23:48.752 15252-15252/com.cathedralsw.schoolteacher W/IInputConnectionWrapper: getTextBeforeCursor on inactive InputConnection 
12-22 12:23:48.753 15252-15252/com.cathedralsw.schoolteacher W/IInputConnectionWrapper: getSelectedText on inactive InputConnection 
12-22 12:23:48.753 15252-15252/com.cathedralsw.schoolteacher W/IInputConnectionWrapper: getTextAfterCursor on inactive InputConnection 
12-22 12:23:48.755 15252-15252/com.cathedralsw.schoolteacher W/IInputConnectionWrapper: getExtractedText on inactive InputConnection 
12-22 12:23:48.755 15252-15252/com.cathedralsw.schoolteacher W/IInputConnectionWrapper: getTextBeforeCursor on inactive InputConnection 
12-22 12:23:48.755 15252-15252/com.cathedralsw.schoolteacher W/IInputConnectionWrapper: getSelectedText on inactive InputConnection 
12-22 12:23:48.756 15252-15252/com.cathedralsw.schoolteacher W/IInputConnectionWrapper: getTextAfterCursor on inactive InputConnection 
12-22 12:23:53.903 15252-15252/com.cathedralsw.schoolteacher I/TextInputLayout: EditText added is not a TextInputEditText. Please switch to using that class instead. 
12-22 12:23:55.415 15252-15252/com.cathedralsw.schoolteacher I/HwPointEventFilter: do not support AFT because of no config 
12-22 12:23:56.601 15252-15252/com.cathedralsw.schoolteacher W/IInputConnectionWrapper: finishComposingText on inactive InputConnection 
12-22 12:23:57.745 15252-15252/com.cathedralsw.schoolteacher I/HwSecImmHelper: mSecurityInputMethodService is null 
12-22 12:23:57.756 15252-15252/com.cathedralsw.schoolteacher E/SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 
12-22 12:23:57.756 15252-15252/com.cathedralsw.schoolteacher E/SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 
12-22 12:23:57.762 15252-15252/com.cathedralsw.schoolteacher E/SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 
12-22 12:23:57.762 15252-15252/com.cathedralsw.schoolteacher E/SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 
12-22 12:23:59.740 15252-15252/com.cathedralsw.schoolteacher W/IInputConnectionWrapper: finishComposingText on inactive InputConnection 
12-22 12:23:59.744 15252-15252/com.cathedralsw.schoolteacher E/SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 
12-22 12:23:59.744 15252-15252/com.cathedralsw.schoolteacher E/SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 
12-22 12:23:59.749 15252-15252/com.cathedralsw.schoolteacher E/SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 
12-22 12:23:59.750 15252-15252/com.cathedralsw.schoolteacher E/SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 
12-22 12:24:00.910 15252-15252/com.cathedralsw.schoolteacher I/HwSecImmHelper: mSecurityInputMethodService is null 
12-22 12:24:00.985 15252-15252/com.cathedralsw.schoolteacher I/HwPointEventFilter: do not support AFT because of no config 
12-22 12:24:02.687 15252-15252/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 01 
12-22 12:24:02.687 15252-15298/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 1 
12-22 12:24:02.707 15252-15252/com.cathedralsw.schoolteacher I/HwSecImmHelper: mSecurityInputMethodService is null 
12-22 12:24:04.603 15252-15298/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 2 
12-22 12:24:04.611 15252-15298/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 3 
12-22 12:24:04.703 15252-15298/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 4 
12-22 12:24:04.704 15252-15298/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 5 
12-22 12:24:04.704 15252-15298/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: 55 
12-22 12:24:04.704 15252-15298/com.cathedralsw.schoolteacher I/TESTTTTTTTTTTT: true 

응용 동결과 마지막 로그는 doInBackground (출신) ... 마지막 호출에 onPostExecute()에서 아무 로그

+0

프로그램을 실행하고 로그를 붙여 넣으십시오. –

+0

로그가 추가되었습니다 ..... –

답변

0

Asynctaskexecutor으로 실행 안드로이드 API 버전이 14 이상인 경우

낮은 버전의 Android에서는 모든 AsyncTask가 단일 배경 th에서 실행 되었기 때문에 독서. 따라서 다른 작업이 완료 될 때까지 새로운 작업이 대기 중일 수 있습니다.

Android의 하위 버전 (실제로 HONEYCOMB 이전 버전)에서는 실행 프로그램에서 AsyncTask를 실행할 수 없습니다.

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) 
    task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); 
else 
    task.execute(); 

HONEYCOMB execute() 메서드를 실행하기 전에 AsynkTask를 병렬로 실행하십시오.

+0

코드가 추가되고 executeOnExecutor가 사용되지만 앱이 동등하게 작동하고 멈추고 onPostExecute가 실행되지 않습니다 –

+0

@AleXis asynctask를 호출 한 곳에서 확인 하시겠습니까? –

+0

조각에서 asyncTask는 활동의 클래스 –