如何在 android 中的整个应用程序中 运行 倒计时?
how to run countdowntimer throughout an application in android?
我正在尝试在我的应用程序中添加倒数计时器,我想在整个应用程序中 运行 计时 5 分钟,无需暂停和取消以及重新启动...我已经尝试了几个代码,但我没有'得到想要的输出!
面临的问题:
当我试图从 MainActivity 到 Main2Activity 时它工作正常但是
如果 Main2Activity 到 MainActivity,定时器会重新启动!
//MainActivity.java
public class MainActivity extends AppCompatActivity {
Button button;
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button= (Button) findViewById(R.id.button);
textView= (TextView) findViewById(R.id.id1);
new CountDownTimer(300000, 1000) { // adjust the milli seconds here
public void onTick(long millisUntilFinished) {
textView.setText(""+String.format("%d min, %d sec",
TimeUnit.MILLISECONDS.toMinutes( millisUntilFinished),
TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))));
}
public void onFinish() {
textView.setText("done!");
}
}.start();
button.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
Intent in=new Intent(MainActivity.this,Main2Activity.class);
startActivity(in);
}
});
}
}
//Main2Activity.java
public class Main2Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Button btn2= (Button) findViewById(R.id.button2);
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i=new Intent(Main2Activity.this,MainActivity.class);
startActivity(i);
}
});
}
}
您的 Main2Activity 正在启动 MainActivity 的新实例。如果要 return 到原始 MainActivity,请使用 finish()
而不是 startActivity()
。
我正在尝试在我的应用程序中添加倒数计时器,我想在整个应用程序中 运行 计时 5 分钟,无需暂停和取消以及重新启动...我已经尝试了几个代码,但我没有'得到想要的输出!
面临的问题: 当我试图从 MainActivity 到 Main2Activity 时它工作正常但是 如果 Main2Activity 到 MainActivity,定时器会重新启动!
//MainActivity.java
public class MainActivity extends AppCompatActivity {
Button button;
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button= (Button) findViewById(R.id.button);
textView= (TextView) findViewById(R.id.id1);
new CountDownTimer(300000, 1000) { // adjust the milli seconds here
public void onTick(long millisUntilFinished) {
textView.setText(""+String.format("%d min, %d sec",
TimeUnit.MILLISECONDS.toMinutes( millisUntilFinished),
TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))));
}
public void onFinish() {
textView.setText("done!");
}
}.start();
button.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
Intent in=new Intent(MainActivity.this,Main2Activity.class);
startActivity(in);
}
});
}
}
//Main2Activity.java
public class Main2Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Button btn2= (Button) findViewById(R.id.button2);
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i=new Intent(Main2Activity.this,MainActivity.class);
startActivity(i);
}
});
}
}
您的 Main2Activity 正在启动 MainActivity 的新实例。如果要 return 到原始 MainActivity,请使用 finish()
而不是 startActivity()
。