2012-09-04 163 views
0

我有以下的代码,这将给我从我的活动铃声。我需要这款铃声持续响铃30秒。正如你可以从下面的代码中看到的,我使用定时器在第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); 

} 

回答

1

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

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

+0

我只有一个活动,如果这些变量是私人的,它会产生什么影响? – user1400538

+0

@ user1400538他是对的,请使他们的类变量请 –

+0

@ user1400538:你也可以让他们公开或保护,如果需要的话,但他们需要是一个成员变量。 – RvdK