我需要从几个类调用方法,但我不知道如何获得正确的上下文
控股班:
public class SharedData {
......
......
public static void stop_ring(Context context){
Uri lcurUri = RingtoneManager.getActualDefaultRingtoneUri(context, RingtoneManager.TYPE_NOTIFICATION);
Ringtone ring = RingtoneManager.getRingtone(context, lcurUri);
ring.stop();
}
我如何从活动类中调用它,以及如何从PhoneStateListener类调用它。
答案 0 :(得分:3)
Activity扩展了Context,因此您可以这样调用它:
SharedData.stop_ring(this);
对于侦听器,您必须将Context放在构造函数中并将其另存为属性。然后致电:
SharedData.stop_ring(saved_context);
答案 1 :(得分:1)
主要解决方案是
1
public class MyPhoneStateListener extends PhoneStateListener
{
public MyPhoneStateListener(Context ctx) {
super();
}
2
当听众的时候
TelephonyManager telephonyManager = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);telephonyManager.listen(
new MyPhoneStateListener(Context),
PhoneStateListener.LISTEN_CALL_STATE);
3
光洁度
通过
答案 2 :(得分:0)
尝试使用getApplicationContext()。大部分都有效。