如何从PhoneStateListener类获取上下文

时间:2011-08-07 18:06:44

标签: java android android-ndk

我需要从几个类调用方法,但我不知道如何获得正确的上下文

控股班:

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类调用它。

3 个答案:

答案 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()。大部分都有效。