Начать деятельность в BroadcastReceiver - PullRequest
1 голос
/ 24 января 2012

Я создал небольшое приложение. Единственное, что он делает, это ловит исходящий вызов и показывает некоторую активность, когда это происходит. Существует только Activity и BroadcastReceiver.

Я хотел интегрировать свой код с другим приложением, я удалил BroadcastReceiver из Manifest.xml и создал (и зарегистрировал) его динамически из основной деятельности. Мой приемник срабатывает хорошо, но активность не отображается.

В чем разница между двумя методами?

Как мне сделать так, чтобы активность отображалась?

из MainActivity.java:

callInterceptor = new InterceptOutgoingCall();
IntentFilter callInterceptorIntentFilter = new IntentFilter("android.intent.action.NEW_OUTGOING_CALL");
callInterceptorIntentFilter.setPriority(100);
registerReceiver(callInterceptor,  callInterceptorIntentFilter);

и из функции receiver.onReceive(Context,Intent):

Intent alertIntent = new Intent(context, AlertActivity.class);
alertIntent.putExtra("callnumber", phonenbr);
alertIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(alertIntent);

моя активность объявлена ​​в manifest, например:

<activity android:name=".AlertActivity" 
            android:screenOrientation="portrait"/>

1 Ответ

1 голос
/ 25 января 2012

Я нашел ответ в двух темах:

  1. Android запускает активность с приемника вещания

  2. Действие началось с уведомления, открытого поверх стека действий

В манифесте действие должно быть объявлено с android:taskAffinity.И при запуске намерения мне пришлось добавить флаг = Intent.FLAG_ACTIVITY_NEW_TASK

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