我正在创建一个包含大约20个活动的应用程序,并且我希望在活动1开始时完成计数计时器并完成对最后一个活动的计数。我找到了一种方法来创建一个子类并在1个活动中调用计时器但是我不知道如何将计时器的值从活动1传递到活动2和从2传递到3。这是我的代码
子类
package com.mytimer;
import java.lang.ref.WeakReference;
import java.util.TimerTask;
import android.os.Handler;
import android.widget.TextView;
public class IncrementTask extends TimerTask {
WeakReference<TextView> mRef;
int counter = 0;
Handler handler = new Handler();
public IncrementTask(TextView text) {
mRef = new WeakReference<TextView>(text);
}
public void run() {
handler.post(new Runnable() {
public void run() {
mRef.get().setText("counter " + counter);
counter++;
}
});
}
}
在我的活动1中
TextView mTextView = (TextView)findViewById(R.id.text);
Timer timer = new Timer();
IncrementTask task = new IncrementTask(mTextView);
timer.scheduleAtFixedRate(task, 0, 1000);
Button btn = (Button)findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
Intent i = new Intent (MainActivity.this, Page2.class);
startActivity(i);
}
});
我想知道如何将计时器的值传递给下一个活动,而不是从0开始计时器 任何帮助,请
答案 0 :(得分:2)
在我看来,使用Fragments而不是Activity,因为如果使用片段,它可以在屏幕上显示两个包含计时器和剩余内容的片段。
如果您使用活动,则当您从一次屏幕移动到另一个屏幕时,无法显示准确的计时器值。
答案 1 :(得分:0)
您如何开始后续活动?我想使用startActivity()或startActivivtForResult(),如果是这种情况,你会冷却在intent中传递时间。 但这不是一个好的解决方案,因为在这个过程中你会“浪费时间”,因为活动的凝视并不精确到第二个。 为什么不创建一个在流程结束时开始并在结束时结束的计时器活动?