Страница 1 из 1
Вызов Activity из Broadcast
Добавлено: 09 окт 2014, 10:41
grem17
при вызове Activity из другой Activity хорошо работает код
Код: Выделить всё
Intent mIntent = new Intent(context, NewActivity.class);
startService(mIntent);
я же пытаюсь сделать вызов Activity из Broadcast, не получается, попросту ни чего не происходит на экране
Код: Выделить всё
public class MessageReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
.............
Intent mIntent = new Intent(context, NewActivity.class);
context.startService(mIntent);
}
}
}
в манифесте активити который хочу вызвать - зарегистрирован
Код: Выделить всё
<activity android:name=".AddEdit"
android:label="@string/title_add_edit"
android:theme="@android:style/Theme.Dialog">
</activity>
Re: Вызов Activity из Broadcast
Добавлено: 09 окт 2014, 11:23
klblk
Activity или все-таки Service? Говорите одно, а в коде другое, а в xml третье.
Re: Вызов Activity из Broadcast
Добавлено: 09 окт 2014, 12:16
grem17
да я просто эксперементирую с разными вариантами, не тот код добавил...
надо вызвать из броадкаста активити...
как это сделать?
код переписывать думаю не надо и так понятно что
startService
заменить на startActivity
читал что вроде вызывается сначала сервис, а из него активити...в общем запутался, не знаю как сделать правильно
Re: Вызов Activity из Broadcast
Добавлено: 09 окт 2014, 13:33
klblk
0) Запускать активити из броадкаста не лучший кейс. Пользователь будет не рад.
1) У меня запустилось с флагом:
[syntax=java]intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);[/syntax]
собственно перед этим не запустилось и мне честно написали в логкат что нужен этот флаг.
2) Точно ли исполняется код ресивера?
3) Все еще есть косяки в коде. Имя активити в манифесте не соответствует тому что вы пытаетесь вызвать (хотя может это опять таки остатки от сервиса).
Re: Вызов Activity из Broadcast
Добавлено: 09 окт 2014, 14:09
grem17
все равно не получается
вот обработка броадкаста, перехватываю сообщение, вывожу для теста строчку "sssssssssssssss" через Toast (работает нормально), но вот активити не запускается
дальнейшую обработку прервыаю через abortBroadcast (пробовал и не прерывать все равно так же)
Код: Выделить всё
public class MessageReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
Intent mIntent = new Intent(context, AddEdit.class);
mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Toast.makeText(context, "sssssssssss", Toast.LENGTH_LONG).show();
abortBroadcast();
}
}
вот манифест
Код: Выделить всё
....
<uses-permission android:name="android.permission.RECEIVE_SMS" />
....
<activity android:name=".AddEdit"
android:label="@string/title_add_edit"
android:theme="@android:style/Theme.Dialog">
</activity>
<receiver
android:name="com.test.MessageReceiver">
<intent-filter android:priority="999" >
<action android:name="android.provider.Telephony.SMS_RECEIVED" >
</action>
</intent-filter>
</receiver>
........
Re: Вызов Activity из Broadcast
Добавлено: 09 окт 2014, 14:15
klblk
Вот что-нибудь да не так напишите) startActivity не вижу в последней версии.
Ошибка имеется при этом? или просто молча ничего не делает?
Re: Вызов Activity из Broadcast
Добавлено: 09 окт 2014, 14:35
grem17
ес, круто, заработало, спасибо =)