Я новичок в android. Я использовал обработчик для запуска таймера в моем коде. Я пытался сделать таймер, который называет новое намерение, когда время меньше нуля или оно отрицательно. Эта программа дает ошибки Runtime. Я пробовал с 0L в условии. Но программа не работает. Если я использую 0 вместо 0L, если условие, то значение timeToGo продолжает уменьшаться отрицательно. В Game.java нет ошибки, поскольку у нее есть страница по умолчанию для Android. Я думаю, что есть другой способ вызвать намерение в обработчике. Помогите решить эту проблему. СпасибоНевозможно назвать новое намерение использованием Handler
Файл activity_main выглядит следующим образом
package com.example.test;
import android.support.v7.app.ActionBarActivity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView tt1;
private Handler customHandler = new Handler();
long timeInMilliseconds = 0L,timeToGo=0L,startTime=0L;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tt1=(TextView) findViewById(R.id.textView1);
startTime=System.currentTimeMillis();
customHandler.postDelayed(updateTimerThread, 0);
}
public Runnable updateTimerThread=new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
long timeNow = System.currentTimeMillis();
timeToGo = 30 - (timeNow - startTime)/1000;
tt1=(TextView) findViewById(R.id.textView1);
tt1.setText(timeToGo+"");
if(timeToGo<0L){
Intent intent=new Intent(MainActivity.this,Game.class);
finish();
startActivity(intent);
}
customHandler.postDelayed(this, 0);
}
};
}
Возможно, столкновение с краной поможет. Добавить 'customHandler.removeCallbacks (null); return; 'just after' startActivity' – Blackbelt
Опубликовать свой лог cat – Lingeshwaran