Форум программистов, компьютерный форум CyberForum.ru

Как приложение Вконтакте узнаёт о новом сообщении? - Android

Восстановить пароль Регистрация
Другие темы раздела
Android Gif в WebView http://www.cyberforum.ru/android-dev/thread1814700.html
В одном известном браузере просмотр гиф реализован так: статическая картинка (фрейм), после клика по нему этот фрейм преобразуется в гифку. Прямо на этой же странице. Как реализовать сие кто знает? Фрейм уже есть как получать, осталось остальное.
Android Работа с файлом из папки Assets Вопрос к знающим. При старте приложения в методе onCreate() постоянно копирую файл с расширением .sh в папку приложения своего из папки assets(data/data/...). Перезаписывается ли файл самостоятельно? А то при редактировании .sh файла в студии, изменения при работе приложения не видно. Спасибо за внимание!!! http://www.cyberforum.ru/android-dev/thread1814545.html
Организация справки по приложению затемнением неинтересующих областей Android
Приветствую. Встал вопрос об организации справочной системы по использованию приложения. И захотелось сделать это следующим образом. Грубо говоря, при нажатии пользователя на соотв. кнопку с вызовом справки затемняется вся область приложения, а затем, после каждого клика, подсвечивается конкретный элемент и приводится небольшое текстовое описание этого элемента. И вопрос в том, как вообще...
Android Уведомления по времени
Здравствуйте.Пытаюсь создать что то типо напоминалки пить лекарства. Устанавливается время и дни, а затем в нужное время выводится уведомление со звуком в статус бар. Везде пишется что нужно использовать AlarmManager, но я так читал что он грузит процессор и ест батарею.Да и реализация его для меня сложновата. Можно ли как-то обойтись без него? Оно не будить телефон как будильник и включать...
Android Activity в Portrait/Landscape Orientation с разными фрагментами http://www.cyberforum.ru/android-dev/thread1814492.html
Подскажите, как реализовать два разных фрагмента в Activity в Portrait/Landscape Orientation. Нужно, чтобы в Portrait загружался один фрагмент, а в Landscape совершенно другой. Помещаю один content_layout в /layout-land и там даю id и layout на FragmentLandscape. Всегда грузится только один фрагмент и при перевороте просто пустой экран. Привожу пример: MainActivity.class import...
Android База данных для новостной ленты Приложение должно выводить новостную ленту. То есть на всех устройствах лента и кол-во лайков должна быть идентично. Подойдёт ли для этой цели SQLite (Если нет,то что подойдет ?Где должна хранится БД? подробнее

Показать сообщение отдельно
Bi-do-mi
3 / 3 / 0
Регистрация: 19.07.2016
Сообщений: 15
28.10.2016, 14:49     Как приложение Вконтакте узнаёт о новом сообщении?
Вот
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
98
99
100
101
102
103
104
105
public class PollService extends IntentService {
    private static final String TAG = "PollService";
    private static final String EXTRA_MEETING = "meeting";
    private Meeting mMeeting;
 
 
    public static Intent newIntent(Context context) {
        return new Intent(context, PollService.class);
    }
 
    public PollService() {
        super(TAG);
    }
 
    @Override
    public void onCreate() {
        super.onCreate();
       
 
        DatabaseReference reference = FirebaseDatabase.getInstance().getReference("meetings");
        reference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                Log.d(TAG,"data updates");
                Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
                Notification notification = new NotificationCompat.Builder(PollService.this)
                        .setTicker("Бегущая строка")
                        .setSmallIcon(android.R.drawable.ic_menu_report_image)
                        .setContentTitle("OnCreate!")
                        .setContentText("FirebaseUser = null")
                        .setAutoCancel(true)
                        .setSound(defaultSoundUri)
                        .build();
                NotificationManagerCompat notificationManager =
                        NotificationManagerCompat.from(PollService.this);
                notificationManager.notify(0, notification);
            }
 
            @Override
            public void onCancelled(DatabaseError databaseError) {
 
            }
        });
    }
 
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.d(TAG,"onStartCommand");
        return super.onStartCommand(intent, flags, startId);
 
    }
 
    @Override
    public void onDestroy() {
        Log.d(TAG,"onDestroy");
        super.onDestroy();
    }
 
    @Override
    protected void onHandleIntent(Intent intent) {
        if (!isNetworkAvailableAndConnected()) {
            return;
        }
        Log.d(TAG, "onHandle");        
        mMeeting=intent.getParcelableExtra(EXTRA_MEETING);
        if (mMeeting.getEndDate()-System.currentTimeMillis()<0){
            MyPreferences.setStoredMeeting(getApplicationContext(),null);
            DatabaseReference databaseReference =
                    FirebaseDatabase.getInstance()
                            .getReference("meetings/" + mMeeting.getId());
            databaseReference.removeValue();
        }
    }
 
    private boolean isNetworkAvailableAndConnected() {
        ConnectivityManager cm =
                (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
        boolean isNetworkAvailable = cm.getActiveNetworkInfo() != null;
        boolean isNetworkConnected = isNetworkAvailable &&
                cm.getActiveNetworkInfo().isConnected();
        return isNetworkConnected;
    }
 
 
    public static void setCheckAlarm(Context context, boolean shouldDelete, Meeting meeting) {
        Intent i = PollService.newIntent(context);
        i.putExtra(EXTRA_MEETING, meeting);
        PendingIntent pi = PendingIntent.getService(context, 0, i, PendingIntent.FLAG_UPDATE_CURRENT);
        AlarmManager alarmManager = (AlarmManager) context.getSystemService(ALARM_SERVICE);
        if (!shouldDelete) {
            alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
                    SystemClock.elapsedRealtime()+meeting.getEndDate()-System.currentTimeMillis(), pi);
        } else {
            alarmManager.cancel(pi);
            pi.cancel();
        }
    }
 
    public static boolean isServiceAlarmOn(Context context) {
        Intent i = PollService.newIntent(context);
        PendingIntent pi = PendingIntent
                .getService(context, 0, i, PendingIntent.FLAG_NO_CREATE);
        return pi == null;
    }
}
вызываю сервис так:
Java
1
2
Intent i=PollService.newIntent(getApplicationContext());
                        startService(i);
 
Текущее время: 23:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru