Android 方法在切换活动后停止运行

Android 方法在切换活动后停止运行,android,Android,在这个应用程序中,用户的分数应该每秒钟左右增加一次,他们可以使用这个分数并从第二个活动中购买升级。当用户启动应用程序时,程序工作正常,但当他们从第一个活动转到第二个活动并返回时,程序会停止更新文本视图,分数每秒钟增加一次。你们能解释一下发生了什么事吗 package com.example.navjeevenmann.mytycoon; import android.content.Intent; import android.os.Bundle; import android.os.

在这个应用程序中,用户的分数应该每秒钟左右增加一次,他们可以使用这个分数并从第二个活动中购买升级。当用户启动应用程序时,程序工作正常,但当他们从第一个活动转到第二个活动并返回时,程序会停止更新文本视图,分数每秒钟增加一次。你们能解释一下发生了什么事吗

package com.example.navjeevenmann.mytycoon;

import android.content.Intent;
import android.os.Bundle;    
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;


public class MainActivity extends AppCompatActivity {
private Button myButton;
private int Counter;
private Button myButton2;
private TextView myTextView;
Handler handler = new Handler();
private int add = 1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    setContentView(R.layout.activity_main);
    super.onCreate(savedInstanceState);
    Bundle bundle = getIntent().getExtras();
    if (bundle != null) {
        if (bundle.containsKey("Count")) {
            Counter = bundle.getInt("Count");
        }
        if (bundle.containsKey("Add")) {
            add = bundle.getInt("Add");
        }
    }


    myButton = (Button) findViewById(R.id.button);
    myButton2 = (Button) findViewById(R.id.button2);
    myTextView = (TextView) findViewById(R.id.textView);

    myButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Counter = ButtonCounter(Counter);
        }
    });
    myButton2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(getApplicationContext(), 
SecondActivity.class);
            intent.putExtra("Count", Counter);
            startActivity(intent);
        }

    });
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {
            Counter= AutoCounter(Counter, add);
            Display(Counter);
            handler.postDelayed(this, 1000);
        }
    },100);
}


public int ButtonCounter(int Counter) {
    Counter += 1;
    return Counter;
}

public int AutoCounter(int Counter, int add) {
    Counter += add;
    return Counter;
}

public void Display(int Counter) {
    String man = String.valueOf(Counter);
    myTextView.setText("$" + man);

}

 }

只能在
onCreate()方法中启动计数处理程序。
从SecondActivity返回MainActivity时,会调用
onResume()
方法,因此 您需要在
onResume()方法中开始计数

p.S在从
postDelay()
更新用户界面之前,请确保检查是否存在空值

在代码运行时,您的活动可能会被破坏,请确保您的TextView在更新之前不为null