Czekanie do zakończenia thread'a

0

Witam! Napisałem aplikację na Androida, która pobierze z serwera dane dotyczące pogody i wyświetli je w textView, a następnie utworzy powiadomienie, które pokazuje informacje o pogodzie. Pobiera on tekst z textView. Gdy uruchomię program pokazuje on w powiadomieniu domyślny tekst zamiast pogody. W textView pokazuje się dobrze pogoda. Myślałem nad tym, żeby program zaczekał do zakończenia thread'a i wtedy pobrał tekst z textView i go wyświetlił, lecz nie mogę do tego dojść.

protected void onCreate(Bundle savedInstanceState) {
        MyWeather pogodaResult;
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Pogoda = (TextView) findViewById(R.id.textView);
        Thread myThread = new Thread(new Runnable() {
            public void run() {
                String PogodaString = QueryYahooPogoda();
                Document PogodaDoc = convertStringToDocument(PogodaString);
                final MyWeather pogodaResult = parseWeather(PogodaDoc);
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        Pogoda.setText(pogodaResult.toString());
                        String finalPogoda = pogodaResult.toString();
                    }
                });
            }
        });
        myThread.start();
                        NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
                                .setSmallIcon(R.drawable.sun)
                                .setContentTitle("Pogoda")
                                .setContentText(Pogoda.getText() + "°C");

                        Intent resultIntent = new Intent(this, MainActivity.class);

                        TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);

                        stackBuilder.addParentStack(MainActivity.class);

                        stackBuilder.addNextIntent(resultIntent);

                        PendingIntent resultPendingIntent =
                                stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
                        mBuilder.setContentIntent(resultPendingIntent);
                        NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

                        mNotificationManager.notify(0, mBuilder.build());
0

Ojejku jejku - moje oczęta biedne
http://www.journaldev.com/1650/java-futuretask-example-program

I w JSE8 - Ty nie użyjesz - ale mozesz zazdrościć http://www.nurkiewicz.com/2013/05/java-8-definitive-guide-to.html :D:D:D:D

0

Tego problemu już nie posiadam, lecz posiadam kolejny. Aplikacja ma działać w tle, gdy naciskam przycisk "HOME" na telefonie, program sprawdza pogodę i informuje mnie na pasku o niej, lecz po chwili aplikacja sama się wyłącza. Czy da się jakoś ustawić np. priorytet aplikacji, że ma być "niezamykalna"?

1 użytkowników online, w tym zalogowanych: 0, gości: 1