2016-12-09 47 views
0

我有crate兩個活動。第一個有一個計時器,我想從第二個活動的第一個活動中調用方法,這樣我就可以停止計時器在第二個活動中單擊一個按鈕。我想在下面的代碼中調用名稱爲buClickpause的函數,其中包含以下代碼:package com.example.user.timer;從android工作室的另一個活動類調用函數

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); 
} 

}`

+0

發佈第二類 – Mushirih

+0

沒有在第二類無碼只是當點擊它調用從第一類 – safa

回答

0

將通過調用另一個動作的方法實現什麼?如果調用活動處於活動狀態,則其他活動不是,調用其中一個方法是沒有意義的。

所以你的問題的答案是「你不能」。

我建議你重新設計你的應用程序,並將需要從活動中調用的方法放在不是活動本身的類中。有多種方法可以共享類的方法和實例,例如實用程序類中的靜態方法或Singleton類的依賴注入。

+0

的想法onClickpuase功能的按鈕是,我想每個用戶在啓動應用程序的計時器將開始計數第一個活動,當他到達最後一個活動時,他必須單擊一個按鈕,該按鈕將停止計時器,時間將在數據庫中。你可以給我一個想法做到這一點,謝謝 – safa

+0

在onCreate或onStart中啓動計時器,在onPause中停止並將其存儲在數據庫(或文件或首選項)中。另一種方法是將其存儲在獨立的課程/實例中,該課程可獨立於您的活動而保持活動狀態我通常使用依賴注入(牙籤,匕首),所以你需要一個TimeKeeper類來完成所有的計時任務。 – Christine

相關問題