铃声响几秒钟然后停止

时间:2012-09-04 15:58:33

标签: android

我有以下代码可以从我的活动中给我一个铃声。我需要这个铃声来连续振铃30秒。从下面的代码可以看出,我使用Timer在30秒停止此铃声。我遇到的问题是,它不是连续振铃30秒,而是响一次然后停止。有人可以指出解决方案,这样我可以连续30秒使用铃声吗?

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
    final Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), notification);
    r.play();
    final Timer t = new Timer();
    t.schedule(new TimerTask() {
        public void run() {
            r.stop();
            t.cancel();
            finish();
        }
    }, 30000);

}

2 个答案:

答案 0 :(得分:1)

可能是因为在onCreate之后删除了铃声和计时器。

将铃声和计时器设为您的活动的私人成员。

答案 1 :(得分:0)

请尝试以下代码。

private Uri notification;
private  final Ringtone r;
public void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
             setContentView(R.layout.main);
             playRing();

}//end of onCreate

private void playRing(){
    notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
    r = RingtoneManager.getRingtone(getApplicationContext(), notification);
    r.play();
    final Timer t = new Timer();
    t.schedule(new TimerTask() {
        public void run() {
            r.stop();
            t.cancel();
            // I recommend not to put finish() in onCreate() method
            //finish();
        }
    }, 30000);
}