我有以下代码可以从我的活动中给我一个铃声。我需要这个铃声来连续振铃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);
}
答案 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);
}