как получить контекст из класса PhoneStateListener - PullRequest
1 голос
/ 07 августа 2011

мне нужно вызвать метод из нескольких классов, но я не знаю, как получить правильный контекст

Холдинг класса:

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 ]

3 голосов
/ 07 августа 2011

Activity расширяет Context, так что вы можете назвать его так:

SharedData.stop_ring(this);

Для слушателя вам нужно будет поместить Context в конструктор и сохранить его как свойство.Затем позвоните:

SharedData.stop_ring(saved_context);
1 голос
/ 06 января 2015

Основным решением является

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.

отделка

от

0 голосов
/ 05 января 2012

Попробуйте использовать getApplicationContext ().В основном это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...