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

Неубиваемый Service Android - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Сохранение набранного в EditText текста при смене активити http://www.cyberforum.ru/android-dev/thread1833976.html
Добрый день, подскажите как сделать чтобы при смене активити текст в EditText не пропадал.
Программирование Android Google maps метод поиска фрагмента карт на разметке для разных версий андроид Столкнулся с такой проблемой. в андройде 6 работает один метод поиска фрагмента карт на разметке а в 5 и ранее - другой. //api 21+ mapFragment = (MapFragment) getChildFragmentManager().findFragmentById(R.id.container_map); //api20- //mapFragment = (MapFragment) getActivity().getFragmentManager().findFragmentById(R.id.container_map); Соответственно метод не в свое версии андройда ничго... http://www.cyberforum.ru/android-dev/thread1833898.html
Программирование Android Не работает обработчик выбора файла
Снова пытаюсь разобраться с AIDE на мобиле. Проблема в том, что не отрабатывает метод onItemSelected. Там хочу прочитать файл, путь к нему и папку, в которой он находится, но пока там не работают даже логи. Код OpenFileDialog взят отсюда https://github.com/Scogun/Android-OpenFileDialog При запуске программы я вижу дерево каталогов, осуществляю навигацию, выбираю файл, но момент выбора никак в...
Программирование Android SearchView в ActionBar
Всем привет! Добавил в ActionBar фрагмента SearchView, но он не появляется, пустой ActionBar. С добавлением SearchView в ActionBar активити проблем нет. Видимо, я упускаю специфику фрагмента. res/xml/searchable <?xml version="1.0" encoding="utf-8"?> <searchable xmlns:android="http://schemas.android.com/apk/res/android" android:hint="search..." android:label="@string/app_name" />
Программирование Android Permission Denial: receiving Intent http://www.cyberforum.ru/android-dev/thread1833482.html
Добрый вечер. Цель - после перезагрузки запускать Alarm, но он не запускается. System Process выдаёт вот это 10-24 13:16:04.460 477-487/system_process W/BroadcastQueue: Permission Denial: receiving Intent { act=android.intent.action.BOOT_COMPLETED flg=0x10 (has extras) } to com.xxxx.yyyy.project/.StartAtBoot requires android.permission.RECEIVE_BOOT_COMPLETED due to sender null (uid 1000) ...
Программирование Android Связка ScrollView + Include + TableLayout Добрый день. Хочу реализовать основное меню с кнопками, небольшим текстом и логотипом. Для этого использую TableLayout. Для прокрутки по вертикали всех этих многочисленных кнопок подключаю ScrollView. Дальше подключаю Toolbar через include. Не работает. Кто подскажет какая последовательность этих элементов должна быть, чтобы работала данная связка? <ScrollView <TableLayout ... подробнее

Показать сообщение отдельно
JavJun
12 / 10 / 3
Регистрация: 27.08.2015
Сообщений: 236

Неубиваемый Service Android - Программирование Android

25.10.2016, 12:11. Просмотров 887. Ответов 31
Метки (Все метки)

Добрый день.
В общем хочу написать приложение, которое мониторит заряд батареи и в случае определенного уровня заряда, присылает notification пользователю.
Проблема состоит в том, что мой "неубиваемый" сервис, получился убиваемым. Т.е. не работает ни после перезагрузки, ни после закрытия приложения.
Вот основной код:

AndroidManifest.xml:

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

XML
1
2
3
4
5
6
7
8
9
10
11
 <service
        android:name=".NotificationService"
        android:enabled="true"
        android:exported="true"
        android:process=":AlarmBattery"/>
 
    <receiver android:name="ardel.batteryalarm.BootReceiver">
        <intent-filter>
            <action android:name = "android.intent.action.BOOT_COMPLETED"/>
        </intent-filter>
    </receiver>



BootReceiver.java
Кликните здесь для просмотра всего текста

Java
1
2
3
4
5
6
7
8
9
public class BootReceiver extends BroadcastReceiver {
public BootReceiver() {}
 
@Override
public void onReceive(Context context, Intent intent) {
    Intent serviceIntent = new Intent(context, NotificationService.class);
    context.startService(serviceIntent);
}
}


MainActivity.java(основная часть кода):
Кликните здесь для просмотра всего текста

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
protected void onCreate(Bundle savedInstanceState) {
 
    intentService = new Intent(this,NotificationService.class);
    registerReceiver(this.mBatInfoReceiver, new    IntentFilter(Intent.ACTION_BATTERY_CHANGED));
}
 
private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context c, Intent intent) {
        int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);
        if (level <= 50) {
            notification(level);
        }
        int voltage = intent.getIntExtra("voltage", 0);
        int temperature = intent.getIntExtra("temperature", 0);
        int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
        boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING ||
                status == BatteryManager.BATTERY_STATUS_FULL;
        batteryLevel.setText("Battery Status: " + String.valueOf(level) + "% " + isCharging);
        voltageLevel.setText("Battery Voltage: " + String.valueOf(voltage));
        double temps = (double)temperature / 10;
        temperatureLevel.setText("Battery Temperature: " + String.valueOf(temps));
 
    }
};
 
private void notification(int level) {
        startService(intentService);
}
 
@Override
    protected void onStop()
    {
        unregisterReceiver(mBatInfoReceiver);
        super.onStop();
    }


NotificationService.java:
Кликните здесь для просмотра всего текста

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
public class NotificationService extends Service {
NotificationManager manager;
private static final int NOTIFY_ID = 101;
 
@Override
public void onCreate() {
    super.onCreate();
    manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    setNotification();
 
}
 
private void setNotification() {
    Context context = getApplicationContext();
 
    Intent notificationIntent = new Intent(context, MainActivity.class);
    PendingIntent contentIntent = PendingIntent.getActivity(context,
            0, notificationIntent,
            PendingIntent.FLAG_CANCEL_CURRENT);
 
    Resources res = context.getResources();
    Notification.Builder builder = new Notification.Builder(context);
 
    builder.setContentIntent(contentIntent)
            .setSmallIcon(R.drawable.battery)  
            .setTicker("Msg")
            .setWhen(System.currentTimeMillis())
            .setAutoCancel(true)
 
            .setContentTitle("Msg1")
 
            .setContentText("Msg2а");
 
    Notification notification = builder.build();
 
    NotificationManager notificationManager = (NotificationManager) context
            .getSystemService(Context.NOTIFICATION_SERVICE);
    notificationManager.notify(NOTIFY_ID, notification);
}
 
public IBinder onBind(Intent arg0) {
    return null;
}
}


Буду очень-очень благодарен любой помощи
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru