Android - Как заставить виджет распознавать, когда ориентация телефона изменилась - PullRequest
1 голос
/ 10 апреля 2010

Я хочу, чтобы мой виджет обновлялся при изменении ориентации телефона. До Android 2.0 вы могли зарегистрировать свой виджет, чтобы получить намерение изменить ориентацию

<intent-filter>
   <action android:name="android.intent.action.CONFIGURATION_CHANGED" />
</intent-filter>

но после 2.0 вы не можете это сделать. Android Dev Doc говорит:

Вы не можете получить это через компоненты, заявленные в манифестах, только явно зарегистрировавшись для этого с Context.registerReceiver ().

Хороший совет, чтобы попытаться зарегистрировать его, но вы не можете зарегистрировать получателя в AppWidgetProvider.

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

1 Ответ

0 голосов
/ 07 октября 2010

Вы можете создать сервис и зарегистрировать его в событии CONFIGURATION_CHANGED, например:

public class MyService extends Service {


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

    BroadcastReceiver bReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            refreshWidget();  // Code to refresh the widget
        }
    };

    IntentFilter intentFilter = new IntentFilter(Intent.ACTION_CONFIGURATION_CHANGED);
    registerReceiver(bReceiver, intentFilter);

`}

...