-1

我正在制作一个包含大约 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 开始计时器任何帮助请

4

2 回答 2

2

在我看来,使用 Fragments 而不是 Activity,因为如果您使用 Fragment,它可以在屏幕上显示两个 Fragment,其中包含计时器和您的剩余内容。

如果您使用活动,则在您从一个屏幕移动到另一个屏幕时无法显示准确的计时器值。

于 2013-02-18T06:15:25.493 回答
0

后续活动如何开始?我想用 startActivity() 或 startActivivtForResult() ,如果是这种情况,你会在意图中打发时间。但这不是一个好的解决方案,因为在此过程中您会“浪费时间”,因为活动的凝视并不精确到秒。为什么不创建一个在流程结束时开始并在结束时结束的计时器活动?

于 2013-02-18T06:15:04.893 回答