Потоки

Ответить
babygluk
Сообщения: 35
Зарегистрирован: 13 окт 2013, 17:02

Потоки

Сообщение babygluk » 04 ноя 2013, 18:27

Вопрос состоит в том, как сделать условие для потока.
Я впервые зашел в программу, поток запустился, я перехожу по Активити, закрыл приложение - Поток должен работать дальше и выполнять мой метод.
Когда я заново открываю программу(не перезагружая смартфон) тот же поток должен продолжать работать дальше)
а у меня выходит, закрыл приложение, запускаю.
-Старый поток
+новый поток
и того 2 потока =)


[syntax=java5]package com.example.test;

import java.util.concurrent.TimeUnit;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.Menu;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.Toast;

public class MainActivity extends Activity {
Handler h;
Thread t;
int count = 0;
int seconds = 0;
boolean work= true;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ProgressBar p = (ProgressBar) findViewById(R.id.progressBar1);
p.setProgressDrawable(getResources().getDrawable(R.drawable.vb));

h = new Handler();

t = new Thread(new Runnable() {
public void run() {
try {
while(work) {
TimeUnit.SECONDS.sleep(1);
seconds++;
// обновляем ProgressBar
h.post(updateProgress);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
t.start();

}
Runnable updateProgress = new Runnable() {
public void run() {

count++;
Toast.makeText(MainActivity.this, ""+count+ " s"+seconds, Toast.LENGTH_SHORT).show();
}
};
public void myClick(View v){
Intent intent = new Intent(MainActivity.this,TwoMainActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.slide_left_in, R.anim.slide_left_out);

}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}
[/syntax]


Ответить