从android studio中的另一个活动类调用函数

时间:2016-12-09 18:14:02

标签: android

我已经完成了两项活动。第一个有一个计时器我想从第二个活动中的第一个活动调用一个方法,所以我可以阻止计时器点击第二个活动中的一个按钮。我想在下面的代码中将名称称为buClickpause的函数 `package com.example.user.timer;

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

public class MainActivity extends AppCompatActivity {
Button btnstart,btnpuse,btnstop;
TextView textTimer;
Handler customhandler=new Handler();
long startaatime=0L,timeInMilliseconds=0L,timeSwapBuff=0L,updateTime=0L;
Runnable updateTimerThred=new Runnable() {
    @Override
    public void run() {
        timeInMilliseconds=SystemClock.uptimeMillis()-startaatime;
        updateTime=timeSwapBuff+timeInMilliseconds;
        int secs=(int)updateTime/1000;
        int mins=secs/60;
        secs%=60;
        int millisecomds=(int)(updateTime%1000);
        textTimer.setText(""+mins+":"+String.format("%02d",secs)
  +":"+String.format("%03d",millisecomds));
        customhandler.postDelayed(this,0);

    }
};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    textTimer=(TextView) findViewById(R.id.textView);

  }
  public void onClickstart(View view){
   startaatime= SystemClock.uptimeMillis();
   customhandler.postDelayed(updateTimerThred,0);

 }
  public void onClickpauase(View view){
    timeSwapBuff=timeInMilliseconds;
    customhandler.removeCallbacks(updateTimerThred);
 }

}`

1 个答案:

答案 0 :(得分:0)

通过在另一个Activity中调用方法可以实现什么?如果呼叫活动处于活动状态,则其他活动不是,并且对其中一种方法的调用没有意义。

所以问题的答案是"你不能"。

我建议您重新设计您的应用程序,并将需要从活动中调用的方法放在不属于该活动的类中。有多种方法可以共享类的方法和实例,例如实用程序类中的静态方法或Singleton类的依赖注入。