Вопрос состоит в том, как сделать условие для потока.
Я впервые зашел в программу, поток запустился, я перехожу по Активити, закрыл приложение - Поток должен работать дальше и выполнять мой метод.
Когда я заново открываю программу(не перезагружая смартфон) тот же поток должен продолжать работать дальше)
а у меня выходит, закрыл приложение, запускаю.
-Старый поток
+новый поток
и того 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]
Потоки
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара