Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
4 / 4 / 1
Регистрация: 13.01.2014
Сообщений: 6

Обновление WebWiev по нажатию на уведомление

13.01.2014, 14:23. Показов 1315. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как при нажатии на уведомление обновить страницу WebWiev в открытом Activity?
Есть сервис, который создает уведомление, по нажатию на которое отрывается Activity в onResume() которого обновляется страница WebWiev. Как обновить страницу WebWiev если Activity уже запущено? Событие onResume() не происходит

Сервис создает уведомление:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
void sendNotif(boolean with_sound) {
    Context context = getApplicationContext();
    NotificationManager nm = (NotificationManager) context 
        .getSystemService(Context.NOTIFICATION_SERVICE);        
    Notification.Builder builder = new Notification.Builder(context);
    Intent WievAppIntent = new Intent(this, WievActivity.class);
    PendingIntent pIntent;
    if (with_sound) {
        pIntent = PendingIntent.getActivity(context, 0, WievAppIntent, PendingIntent.FLAG_CANCEL_CURRENT);
    }
    else {
        pIntent = PendingIntent.getActivity(context, 1, WievAppIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    }
    builder.setContentIntent(pIntent)
            .setWhen(System.currentTimeMillis());
            
    if (with_sound) {
        builder.setDefaults(Notification.DEFAULT_ALL)
            .setAutoCancel(true)
            .setTicker(getString(R.string.stat_title))
            .setContentTitle(getString(R.string.title))
            .setContentText(getString(R.string.note_text))
            .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.ic_new_call))
            .setSmallIcon(R.drawable.ic_new_call_small);
    }
    else {
        builder.setTicker(getString(R.string.stat_title_no))
        .setContentTitle(getString(R.string.title_no))
        .setContentText(getString(R.string.note_text_no))
        //.setLargeIcon(BitmapFactory.decodeResource(res, R.drawable.cat))
        .setSmallIcon(R.drawable.ic_launcher);          
    }
 
    @SuppressWarnings("deprecation")
    Notification n = builder.getNotification();
//  n.flags |= Notification.FLAG_SHOW_LIGHTS;
//  n.ledARGB = 0xff00ff00;
//  n.ledOnMS = 300;
//  n.ledOffMS = 1000;
    if (with_sound) {
        nm.notify(2, n);
    }
    else {
        startForeground(1, n);
    }
}


Код Activity
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
package com.example.ssmp;
 
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.http.SslError;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Window;
import android.webkit.CookieSyncManager;
import android.webkit.SslErrorHandler;
import android.webkit.WebView;
import android.webkit.WebViewClient;
 
public class WievActivity extends Activity {
    //private static final String LOG_TAG ="ssmp_log";
    private String APP_PREFERENCES = "ssmp_settings"; 
    private SharedPreferences mSettings;
    private String SrvName;
    
    private WebView wv;
    //private Context context;
    
    private String GetSrvName() {
        String val="";
        if (mSettings.contains("ip_server")) {
            val = mSettings.getString("ip_server", "");
        }
        return val; 
    }
    
    private class HelloWebViewClient extends WebViewClient 
    {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) 
        {
            view.loadUrl(url);
            return true;
        }
        @Override
        public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) {
            handler.proceed() ;
        }
    }
 
    @Override
    protected void onResume() {
        Log.d("1111111111111111", "onResume WievActivity!!!!!");
        super.onResume();
        loadSsmpUrl();
    }
 
//  @Override
//  protected void onPause() {
//      super.onPause();
//  }
 
    @SuppressLint("SetJavaScriptEnabled")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.main);
        mSettings = getSharedPreferences(APP_PREFERENCES, Context.MODE_PRIVATE);
        wv = (WebView)findViewById(R.id.webView1);
        wv.setWebViewClient(new HelloWebViewClient());
        wv.getSettings().setJavaScriptEnabled(true);// включаем поддержку JavaScript
        wv.getSettings().setUseWideViewPort(true);
        wv.getSettings().setAppCacheEnabled(true);
        wv.getSettings().setSupportZoom(true);
        //wv.getSettings().setBuiltInZoomControls(true);
        wv.setInitialScale(1);
        CookieSyncManager.createInstance(getApplicationContext());
        SrvName = GetSrvName();
    }
 
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         Log.d("1111111111111111", "onActivityResult WievActivity!!!!!");
        super.onActivityResult(requestCode, resultCode, data);
    }
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK) && wv.canGoBack()) {
            wv.goBack();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
    public void loadSsmpUrl(){
        CookieSyncManager.getInstance().sync();
        wv.loadUrl(getString(R.string.ssmp_url_prefix) + SrvName +"/base/calls/");// указываем страницу загрузки
    }
}


Подскажите пожалуйста, как обновить страницу WebWiev если Activity уже запущено?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.01.2014, 14:23
Ответы с готовыми решениями:

Открыть скрытое окно по нажатию на уведомление
Ситуация такая, я запускаю приложение, оно дает уведомление что запущено, нажимаю на кнопку мобильника HOME, происходит сворачивание этого...

Автоматическое обновление формы и уведомление стандартным звуком
Здравствуйте! Прошу подсказать и возможно решить следующую проблему. Имеется база данных расположенная в сетевой папке рассчитанная на три...

Обновление формы по нажатию F5
Всем привет!!! Подскажите, пожалуйста, как обновить форму по нажатию F5 (как будто только открылась)

5
 Аватар для YuraAAA
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
13.01.2014, 15:21
antch, По нажатию на уведомление есть два сценария:
Если активити ещё не запущена - срабатывает - onCreate-onStart-onResume.
Если активити уже запущена - срабатывает метод onNewIntent() API

Переопределите этот метод и делайте, что Вам надо.
1
4 / 4 / 1
Регистрация: 13.01.2014
Сообщений: 6
13.01.2014, 15:55  [ТС]
Спасибо YuraAAA, добавил в код Activity
Java
1
2
3
4
5
6
@Override
    protected void onNewIntent(Intent intent) {
        Log.d("1111111111111111", "onNewIntent WievActivity!!!!!");
        loadSsmpUrl();      
        super.onNewIntent(intent);
    }
Событие не возникает

Добавлено через 7 минут
возникло это событие когда при создании уведомления добавил флаг FLAG_ACTIVITY_SINGLE_TOP
Java
1
2
3
4
5
..........
Intent WievAppIntent = new Intent(this, WievActivity.class);
WievAppIntent.addFlags(WievAppIntent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent pIntent;
...........
но теперь возникают оба события: и onResume и onNewIntent

Добавлено через 14 минут
Проблема решилась, добавил в манифест android:launchMode="singleInstance" для Activity. Теперь OnResume срабатывает всегда
з.ы. убрал добавление флага FLAG_ACTIVITY_SINGLE_TOP
0
 Аватар для YuraAAA
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
13.01.2014, 15:57
antch, логично) У Вас получилась куча инстансов активити)
0
4 / 4 / 1
Регистрация: 13.01.2014
Сообщений: 6
13.01.2014, 16:12  [ТС]
Я же правильно сделал?
0
 Аватар для YuraAAA
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
13.01.2014, 16:30
antch, да.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.01.2014, 16:30
Помогаю со студенческими работами здесь

Обновление элемента по нажатию кнопки
Добрый день, Решил сделать возможность обновления капчи для формы <form method="post"> Ваш E-Mail:<br> ...

Обновление картинки по нажатию кнопки
Есть: кнопка картинка сервлет, возвращающий картинку Нужно: По нажатии на кнопку соотв образом рефрешить картинку ...

Обновление/перезапуск layout по нажатию
необходимо, чтобы по нажатию обновлялся/перезапускался layout. как организовать?

Обновление DataGridView по нажатию кнопки Button
Доброго, делаю прогу с DataGridView в которой выводится данные из файла (обычный файл) , но при добавлении в файл каких либо данных, то в...

Обновление формы (Access) по нажатию кнопки
Есть форма и связанная с ней подчинённая форма. На основной форме есть поля и по нажатию кнопки я руками разбираю поля и формирую sql...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru