2012-09-04 158 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