2013-04-25 3 views
0

Как я могу узнать из моего приложения, было ли оно запущено/возобновлено с моего BroadcastReceiver или нет?Как я могу узнать из своего приложения, был ли он запущен с моего BroadcastReceiver или нет?

Я перехватываю исходящие звонки (android.intent.action.NEW_OUTGOING_CALL). Если getString(Intent.EXTRA_PHONE_NUMBER) является одним из множества чисел, я прерываю этот вызов (setResultData (null)), а вместо этого startActivity мое приложение, putExtra с указанием конкретного номера. Если (и только если), исходящий из BroadcastReceiver, я хочу, чтобы иметь возможность установить предупреждение, которое в основном «использует это приложение с этим номером/возвращать для вызова». Однако иногда, когда я возвращаюсь к приложению из другого места, число по-прежнему кажется в дополнение к намерению, хотя я не пришел из BroadcastReceiver. Я попытался проверить флаг FLAG_ACTIVITY_NEW_TASK, но иногда он появляется, когда не приходит из BroadcastReceiver.

+0

Вы хотите, чтобы пользователь вернулся к вашему действию после телефонного звонка? если пользователь выполнил вызов. –

ответ

0

Как вы сказали: вы можете передать любые параметры своей деятельности, указав, что она была вызвана с вашего BroadcastReceiver. Тем не менее, при возобновлении вашей деятельности некоторый код может быть снова выполнен - ​​потенциально причиной нежелательных результатов. Когда у меня когда-то была аналогичная проблема, я сохранил/переписал некоторую информацию в намерении, например.

myActivity.getIntent().putExtra("phoneNumber", "nil"); 

То, что сработало для меня было то, что я переписал Лишние в намерении после того, как он был обработан, завершая в ActionMode (скажем, с "nil"). Поэтому позже я был в состоянии оценить эту информацию в onResume(), например .:

@Override 
public void onResume() { 
    super.onResume(); 

    String phoneNumber = getIntent().getExtras().getString("phoneNumber") 

    if ("nil".equals(PhoneNumber)) { 
     ... 
    } 
} 

Просто сделал небольшой тест, и она работает очень хорошо.

Надеюсь, это поможет ... Приветствия!

+0

Переписывание дополнительных услуг в намерениях, похоже, работает, спасибо! – whysohard