Вызов startActivityForResult из класса - наследника AppWidgetProvider
У меня есть простой виджет, который должен вызвать активность и обязательно получать результат. Вызова активности я добился следующим образом (пример сильно сокращён):
public class Widget extends AppWidgetProvider {
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
if ("my btn".equals(intent.getAction())) {
Toast.makeText(context, "Вызов настроек", Toast.LENGTH_SHORT).show();
Intent intent1 = new Intent();
intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent1.setAction(android.provider.Settings.ACTION_NETWORK_OPERATOR_SETTINGS);
context.startActivity(intent1);
}
}
}
Однако, я не знаю как получить результат. Как можно добиться этого, если класс не является наследником Activity?
Ответы (1 шт):
Автор решения: Style-7
→ Ссылка
Обычно виджет, если он работает с активностями, является частью приложения и вызывает его активности. Вызов осуществляется через "отложенную активность" PendingIntent вот так:
RemoteViews remote_views = new RemoteViews( BuildConfig.APPLICATION_ID, R.layout.widget);
remote_views.setOnClickPendingIntent ...
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance( context );
appWidgetManager.updateAppWidget( id, remote_views );
В вашем случае как вариант можно вызвать активность которая уже вызовет startActivityForResult