2013-12-13 3 views
1

Я начал телефонный звонок активность запроса результата:Android startActivityForResult, setResult, не onActivityResult называется

Intent intentcall = new Intent(); 
intentcall.setAction(Intent.ACTION_CALL); 
intentcall.setData(Uri.parse("tel:" + phoneNumber)); 
this.startActivityForResult(intentcall, REQUEST_SLIPDROP_ICON_OFF); 

А потом установить результат в телефонный звонок слушателя, как это:

private class MyPhoneStateListener extends PhoneStateListener{ 
    public void onCallStateChanged(int state, String incomingNumber) { 

     super.onCallStateChanged(state, incomingNumber); 

     switch (state) { 
      case TelephonyManager.CALL_STATE_IDLE: 
            setResult(Activity.RESULT_OK); 
            break; 

Наконец, я хочу чтобы отключить значок в onActivityResult, но ничего не происходит.

switch (requestCode) { 

    case REQUEST_SLIPDROP_ICON_OFF: 
     Log.d("request icon off", "request icon off"); 

     if (resultCode == Activity.RESULT_OK) {  

      changeMenuItem(R.id.fall, R.drawable.fall); 
      slipAndDropIconOn = false; 

     } 

     break; 

Что-то не так? Пожалуйста, порекомендуйте! спасибо

ответ

4

Я не думаю, что это действие возвращает результат так призывающую startActivityForResult не отличается называя startActivity

Примечание здесь: выход = None. http://developer.android.com/reference/android/content/Intent.html#ACTION_CALL

+1

Я использую ACTION_CALL как намерение. Даже это намерение не возвращает никакого результата, но я установил результат явно, так как я слушал состояние телефона со следующим кодом: case TelephonyManager.CALL_STATE_IDLE: setResult (Activity.RESULT_OK); – ksu

+0

ACTION_CALL также не имеет возвращаемого значения. Вы устанавливаете результат в своем слушателе не в активности дозвона. Это действие требует установки результата. У вас нет доступа к этому. Согласно документам, PhoneStateListener не имеет метода setResult. http://developer.android.com/reference/android/telephony/PhoneStateListener.html – Kuffs

+0

Я вижу. Кажется, я понял. Каждый раз, когда я вызываю setResult(), он вызывает вызов onActivityResult(). Но мой код, чтобы отключить значок, не будет выполнен, потому что условие условия REQUEST_SLIPDROP_ICON_OFF: не выполняется. Зачем? Я начал работу с этим запросом. BTW, PhoneStateListener - это внутренний класс активности. Любой другой способ добиться результата, которого я хочу? – ksu

Смежные вопросы