루프 내에서 x 초 후에 호출되도록 publishProgress ()를 어떻게 지정할 수 있습니까?

user222

Garbage Collector가 여러 번 호출되어 루프 문에서 x 초 후에 publishProgress ()를 호출하는 방법을 찾고있었습니다.

이것이 내가 가진 것입니다.

protected Void doInBackground(Void... parms) {

    Long size = source.length();

    InputStream input = new FileInputStream(source);
    OutputStream output = new FileOutputStream(destination);

    // Transfer bytes from input to output
    byte[] buf = new byte[1024];

    int len;

    long written = 0;

    while ((len = input.read(buf)) > 0)
    {
        output.write(buf, 0, len);

        written += 1024;

        //This should be called after x seconds
        publishProgress((int) (written * 100 / size));
    }

    input.close();
    output.close();
}

찾았 ScheduledExecutorService지만 while 루프 내부에서 구현하는 방법을 모르겠습니다.

Karioki

이 솔루션은 AsyncTask를 사용하므로 UI ​​스레드를 차단하지 않습니다.

  Long size = source.length();
        InputStream input = new FileInputStream(source);
        OutputStream output = new FileOutputStream(destination);

            // Transfer bytes from input to output
            byte[] buf = new byte[1024];

            int len;

            long written = 0;

            while ((len = input.read(buf)) > 0) {
                output.write(buf, 0, len);

                written += 1024;

                Long size = source.length();

                InputStream input = new FileInputStream(source);
                OutputStream output = new FileOutputStream(destination);

                // Transfer bytes from input to output
                byte[] buf = new byte[1024];

                int len;

                long written = 0;

                while ((len = input.read(buf)) > 0) {
                    output.write(buf, 0, len);

                    written += 1024;

                    (new AsyncTask<Void, Void, Void>() {
                        @Override
                        protected Void doInBackground(Void... parms) {
                            mEventDataSource.deleteAll();
                            try {
                                Thread.currentThread().sleep(x * 1000);
                            } catch (InterruptedException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }
                            return null;
                        }

                        @Override
                        protected void onPostExecute(Void result) {
                            // This should be called after x seconds
                            publishProgress((int) (written * 100 / size));
                        }
                    }).execute();

                }

                input.close();
                output.close();

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

for 루프 내에서 매개 변수화 된 생성자를 어떻게 호출 할 수 있습니까?

분류에서Dev

for 루프 내의 목록에서 마지막 요소를 어떻게 선택할 수 있습니까?

분류에서Dev

루프에서 호출되는 비동기 함수를 어떻게 처리 할 수 있습니까?

분류에서Dev

C ++의 for 루프 내에서 별도의 변수를 어떻게 업데이트 할 수 있습니까?

분류에서Dev

foreach 루프 내에서 쿼리를 어떻게 실행할 수 있습니까?

분류에서Dev

명령 내에서 루프를 어떻게 사용할 수 있습니까?

분류에서Dev

$ (document) .ready (function () {}) 내에서 for 루프를 어떻게 사용할 수 있습니까?

분류에서Dev

루프 끝에서 print ( "", end = x)에서 x를 어떻게 변경할 수 있습니까?

분류에서Dev

내 페이지에서 requirejs 모듈 내에 정의 된 함수를 어떻게 호출 할 수 있습니까?

분류에서Dev

mysql의 for each row 루프 내에서 for each row 루프를 어떻게 수행 할 수 있습니까?

분류에서Dev

명령에서 루프를 어떻게 정의 할 수 있습니까?

분류에서Dev

5 초 후에 jtextfield 테두리를 어떻게 변경할 수 있습니까?

분류에서Dev

운영 체제에서 "루팅"되지 않은 프로그램을 어떻게 호출 할 수 있습니까?

분류에서Dev

운영 체제에서 "루팅"되지 않은 프로그램을 어떻게 호출 할 수 있습니까?

분류에서Dev

중첩 루프에서 벗어날 때 Python에서 내부 루프가 무시되지 않도록 어떻게 만들 수 있습니까?

분류에서Dev

for cycle .bat에서 루프 변수를 어떻게 사용할 수 있습니까?

분류에서Dev

배열에서 루프 변수를 어떻게 사용할 수 있습니까?

분류에서Dev

For 루프, 루프 외부에서 루프 변수를 어떻게 사용할 수 있습니까?

분류에서Dev

클래스 내에서 함수를 어떻게 호출 할 수 있습니까?

분류에서Dev

for 루프 내에서 else 조건을 어떻게 설정할 수 있습니까?

분류에서Dev

for 루프에서 invalidate ()를 어떻게 사용할 수 있습니까?

분류에서Dev

Erlang에서 다음 루프를 어떻게 구현할 수 있습니까?

분류에서Dev

parseJson에서 for 루프를 어떻게 구현할 수 있습니까?

분류에서Dev

이 상황에서 for 루프를 어떻게 사용할 수 있습니까?

분류에서Dev

JavascriptExecutor를 루프에서 어떻게 확인할 수 있습니까?

분류에서Dev

Java에서 for 루프를 어떻게 구현할 수 있습니까?

분류에서Dev

for 루프 내에서 생성 된 변수를 어떻게 리콜 할 수 있습니까?

분류에서Dev

루프 내부에서 매개 변수를 어떻게 보존 할 수 있습니까?

분류에서Dev

Vector를 반복하는 for 루프 내에서 Vector를 어떻게 전달할 수 있습니까?

Related 관련 기사

  1. 1

    for 루프 내에서 매개 변수화 된 생성자를 어떻게 호출 할 수 있습니까?

  2. 2

    for 루프 내의 목록에서 마지막 요소를 어떻게 선택할 수 있습니까?

  3. 3

    루프에서 호출되는 비동기 함수를 어떻게 처리 할 수 있습니까?

  4. 4

    C ++의 for 루프 내에서 별도의 변수를 어떻게 업데이트 할 수 있습니까?

  5. 5

    foreach 루프 내에서 쿼리를 어떻게 실행할 수 있습니까?

  6. 6

    명령 내에서 루프를 어떻게 사용할 수 있습니까?

  7. 7

    $ (document) .ready (function () {}) 내에서 for 루프를 어떻게 사용할 수 있습니까?

  8. 8

    루프 끝에서 print ( "", end = x)에서 x를 어떻게 변경할 수 있습니까?

  9. 9

    내 페이지에서 requirejs 모듈 내에 정의 된 함수를 어떻게 호출 할 수 있습니까?

  10. 10

    mysql의 for each row 루프 내에서 for each row 루프를 어떻게 수행 할 수 있습니까?

  11. 11

    명령에서 루프를 어떻게 정의 할 수 있습니까?

  12. 12

    5 초 후에 jtextfield 테두리를 어떻게 변경할 수 있습니까?

  13. 13

    운영 체제에서 "루팅"되지 않은 프로그램을 어떻게 호출 할 수 있습니까?

  14. 14

    운영 체제에서 "루팅"되지 않은 프로그램을 어떻게 호출 할 수 있습니까?

  15. 15

    중첩 루프에서 벗어날 때 Python에서 내부 루프가 무시되지 않도록 어떻게 만들 수 있습니까?

  16. 16

    for cycle .bat에서 루프 변수를 어떻게 사용할 수 있습니까?

  17. 17

    배열에서 루프 변수를 어떻게 사용할 수 있습니까?

  18. 18

    For 루프, 루프 외부에서 루프 변수를 어떻게 사용할 수 있습니까?

  19. 19

    클래스 내에서 함수를 어떻게 호출 할 수 있습니까?

  20. 20

    for 루프 내에서 else 조건을 어떻게 설정할 수 있습니까?

  21. 21

    for 루프에서 invalidate ()를 어떻게 사용할 수 있습니까?

  22. 22

    Erlang에서 다음 루프를 어떻게 구현할 수 있습니까?

  23. 23

    parseJson에서 for 루프를 어떻게 구현할 수 있습니까?

  24. 24

    이 상황에서 for 루프를 어떻게 사용할 수 있습니까?

  25. 25

    JavascriptExecutor를 루프에서 어떻게 확인할 수 있습니까?

  26. 26

    Java에서 for 루프를 어떻게 구현할 수 있습니까?

  27. 27

    for 루프 내에서 생성 된 변수를 어떻게 리콜 할 수 있습니까?

  28. 28

    루프 내부에서 매개 변수를 어떻게 보존 할 수 있습니까?

  29. 29

    Vector를 반복하는 for 루프 내에서 Vector를 어떻게 전달할 수 있습니까?

뜨겁다태그

보관