2017-09-27 94 views
0

我明白这个问题很可能是最基本的,但我自己无法想到。 我做了一个简单的闹钟,但我不知道如何在点击一个button闹钟。 这里是与广播类:按下按钮时如何停止警报?

public void onReceive(Context context, Intent intent) { 
    Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM); 
    Ringtone ringtone = RingtoneManager.getRingtone(context.getApplicationContext(),notification); 
    ringtone.play(); 

而该按钮是在主类。

+0

好的,当用户按下由你定义的按钮时,你想停止你的振铃报警。 对不对? –

+0

是的,我想按一个按钮,并停止铃声 –

回答

0
1. define a interface in your Utility class. 
2. implement this interface inside your Receiver. 
3. stop alarm via calling method of interface. 

private interface RingtoneHelper { 
     void stopRingtone(); 
    } 

    class Utility { 

     public static RingtoneHelper ringtoneHelper; 


    } 

    public class YourReceiver extends BroadcastReceiver { 
     public void onReceive(Context context, Intent intent) { 
      Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM); 
      final Ringtone ringtone = RingtoneManager.getRingtone(context.getApplicationContext(),notification); 
      ringtone.play(); 

      Utility.ringtoneHelper = new RingtoneHelper() { 
       @Override 
       public void stopRingtone() { 
        if(ringtone.isPlaying()) { 
         ringtone.stop(); 
        } 
       } 
      }; 

     } 
    } 

// todo add click action for your button 
if(Utility.ringtoneHelper != null) { 
Utility.ringtoneHelper.stopRingtone(); 
} 
+0

非常感谢!你可以稍微多点?我无法从其他类在这里注册按钮((( –

+0

只是把这个代码的按钮内部onClickListener 如果(Utility.ringtoneHelper = NULL){ Utility.ringtoneHelper.stopRingtone();} ! –

+0

巨大的感谢! !!! –

相关问题