2013-04-29 35 views
0

我想從其他活動開始CountDownTimer。我使用處理程序來做到這一點,但它不起作用。我做錯了哪一部分?這是我的代碼:通過處理程序調用活動內的其他活動函數不起作用

activity1.java

public class Activity1 extends Activity { 
public static Handler mHandler; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
initHandler(); 
mHandler.sendEmptyMessage(1); 

startActivity(new Intent(Activity1.this, Activity2.class)); 
} 

private void initHandler(){ 
mHandler = new Handler(){ 
    @Override 
    public void handleMessage(Message msg) { 
     switch (msg.arg1) { 
     case 1: 
      mCountDownTimer.start(); 
      break; 
     } 
    } 
}; 
} 

private CountDownTimer mCountDownTimer = new CountDownTimer(10000, 1000) { 
@Override 
public void onTick(long millisUntilFinished) { 
    Toast.makeText(Activity1.this, "Count is: "+ millisUntilFinished/1000, Toast.LENGTH_SHORT).show(); 
} 

@Override 
public void onFinish() { 
    // TODO Auto-generated method stub 

} 
}; 
} 

activity2.java

public class Activity2 extends Activity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 

Activity1.mHandler.sendEmptyMessage(1); 

} 
} 

這是爲什麼不工作?

回答

1

在你initHandler()方法,在switch情況下,改變你的條件從switch (msg.arg1)switch (msg.what)

根據Android Developer sitesendEmptyMessage(int)Sends a Message containing only the what value.

相關問題