Моя проблема в том, что ... У меня есть 2 события .. onCreate и Onclick. У меня есть поток, выполняемый внутри onCreate, и я должен остановить его внутри onClick. Это возможно? Если да, предоставьте мне некоторые подсказки/фрагменты кода, как это реализовать.Остановка темы в другом событии
Мой код в OnCreate случае это: -
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_screen);
button = (Button) findViewById(R.id.btn);
button.setOnClickListener(this);
try{
bright = Settings.System.getInt(getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS);
}catch(Exception ex){
ex.printStackTrace();
bright = 1.0f;
}
lp = getWindow().getAttributes();
new Thread(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
while (true) {
try {
Thread.sleep(10000);
mHandler.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
lp.screenBrightness= dim;
getWindow().setAttributes(lp);
// SLEEP 2 SECONDS HERE ...
final Handler handler = new Handler();
Timer t = new Timer();
t.schedule(new TimerTask() {
public void run() {
handler.post(new Runnable() {
public void run() {
lp.screenBrightness=bright;
getWindow().setAttributes(lp);
}
});
}
}, 2000);
}
});
} catch (Exception e) {
// TODO: handle exception
}
}
}
}).start();
}
эта деятельность выполняется внутри цикла. И я хочу остановить это, я нажимаю на кнопку. Кажется, что я не могу вызвать метод Thread.interrupt() внутри кнопки onclick. Как я могу это исправить?
[android лучший и безопасный способ остановить поток] (http://stackoverflow.com/questions/8505707/android-best-and-safe-way-to-stop-thread) –
@Bhuro: я обновил мой вопрос. спасибо за ссылку anyways – newbee
FWIW, создавая Handler и Timer и TimerTask кажется излишним. Могли бы опустить Timer и TimerTask, просто выполните 'handler.postDelayed (новый Runnable() {..}, 2000);'? – ToolmakerSteve