В Appwidget RemoteViews setOnClickPendingIntent не вызывается после того, как пользователь принудительно останавливает приложение - PullRequest
0 голосов
/ 19 мая 2018

Здесь я сделал один виджет и добавил его прослушиватель кликов, где я запускаю один сервис. Он работает отлично. Но как только пользователь принудительно останавливает приложение из appinfo, щелчок моего виджета не отвечает. Я не понимаю, почему это происходит.Помощь в этом будет оценена. Спасибо

Код класса виджета моего приложения:

MyWidget.java:

public class MyWidget extends AppWidgetProvider {

    static Context cont;
    static SharedPreferences preferences;


    static void updateAppWidget(Context context, AppWidgetManager appWidgetManager,
                                int appWidgetId) {

        cont = context;
        Intent intent2 = new Intent();

        intent2.setAction("....");
        PendingIntent pendingIntent = PendingIntent.
                getBroadcast(context, 0,
                        intent2, PendingIntent.FLAG_UPDATE_CURRENT);

        RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.my_widget);
        views.setOnClickPendingIntent(R.id.appwidget_text, pendingIntent);

        appWidgetManager.updateAppWidget(appWidgetId, views);
    }

    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        // There may be multiple widgets active, so update all of them

        for (int appWidgetId : appWidgetIds) {
            updateAppWidget(context, appWidgetManager, appWidgetId);
        }
    }
@Override
    public void onReceive(Context context, Intent intent) {
        super.onReceive(context, intent);
                context.startService(new Intent(context, MyService.class));

       }
  @Override
    public void onEnabled(Context context) {
..................  }
  @Override
    public void onDisabled(Context context) {
  .................}

1 Ответ

0 голосов
/ 20 мая 2018

Всегда используйте явный Intent, когда это возможно.Ваш код не будет работать на Android 8.0 и выше, где неявные трансляции запрещены.А явный Намерение может вывести ваше приложение из остановленного состояния.

...