Экран активности отображается после выполнения всего кода - PullRequest
2 голосов
/ 02 декабря 2011

Я разработал код, который отправляет файл с мобильного Android на ПК. Код работает абсолютно нормально, однако существует проблема, связанная с отображением экрана активности после выполнения всего кода.

Я хотел добавить кнопку, чтобы приостановить или остановить передачу. Однако даже кнопка отображается после полной передачи. Я также пытался использовать сон после setContentView (), но это не решает мою проблему.

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    status=(TextView)findViewById(R.id.status);
        int x;
DatagramSocket s = new DatagramSocket(2436);

        FileInputStream fis = new FileInputStream("//sdcard//output.3gp");
        while(true)
        {
            b2=new byte[100];
            x=fis.read(b2);

            if(x<=0)
            {
                b2=new byte[10];
                p3=new DatagramPacket(b2,b2.length,client_ip,client_port);
                s.send(p3);
                break;
            }
            else
            {
                p3=new DatagramPacket(b2,b2.length,client_ip,client_port);
                s.send(p3);
                //status.append(b2[0]+" "+p3.getLength());
            }

        }

        fis.close();

Ответы [ 2 ]

4 голосов
/ 02 декабря 2011

выполнить задачу обработки файла в потоке / добавить код обработки файла в метод onstart после super.onStart, вызванного

3 голосов
/ 02 декабря 2011

Не выполнять длинные задачи из основного потока.Это заблокирует пользовательский интерфейс.Переместите свои длинные задачи в другие темы.

Используйте AsyncTask.Посмотрите на это: http://developer.android.com/resources/articles/painless-threading.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...