Вызов Activity из Broadcast

Ответить
grem17
Сообщения: 85
Зарегистрирован: 16 сен 2014, 11:54

Вызов Activity из Broadcast

Сообщение grem17 » 09 окт 2014, 10:41

при вызове 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>     

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Вызов Activity из Broadcast

Сообщение klblk » 09 окт 2014, 11:23

Activity или все-таки Service? Говорите одно, а в коде другое, а в xml третье.

grem17
Сообщения: 85
Зарегистрирован: 16 сен 2014, 11:54

Re: Вызов Activity из Broadcast

Сообщение grem17 » 09 окт 2014, 12:16

да я просто эксперементирую с разными вариантами, не тот код добавил...
надо вызвать из броадкаста активити...
как это сделать?

код переписывать думаю не надо и так понятно что
startService
заменить на startActivity

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

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Вызов Activity из Broadcast

Сообщение klblk » 09 окт 2014, 13:33

0) Запускать активити из броадкаста не лучший кейс. Пользователь будет не рад.
1) У меня запустилось с флагом:
[syntax=java]intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);[/syntax]
собственно перед этим не запустилось и мне честно написали в логкат что нужен этот флаг.
2) Точно ли исполняется код ресивера?
3) Все еще есть косяки в коде. Имя активити в манифесте не соответствует тому что вы пытаетесь вызвать (хотя может это опять таки остатки от сервиса).

grem17
Сообщения: 85
Зарегистрирован: 16 сен 2014, 11:54

Re: Вызов Activity из Broadcast

Сообщение grem17 » 09 окт 2014, 14:09

все равно не получается

вот обработка броадкаста, перехватываю сообщение, вывожу для теста строчку "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>
........

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Вызов Activity из Broadcast

Сообщение klblk » 09 окт 2014, 14:15

Вот что-нибудь да не так напишите) startActivity не вижу в последней версии.
Ошибка имеется при этом? или просто молча ничего не делает?

grem17
Сообщения: 85
Зарегистрирован: 16 сен 2014, 11:54

Re: Вызов Activity из Broadcast

Сообщение grem17 » 09 окт 2014, 14:35

ес, круто, заработало, спасибо =)

Ответить