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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Vyazan
11 / 11 / 2
Регистрация: 19.03.2012
Сообщений: 108
#1

Не работает автозагрузка сервиса AndroidStudio - Программирование Android

17.10.2015, 10:13. Просмотров 378. Ответов 2
Метки нет (Все метки)

Делаю пример из урока по Android Studio. Сервис работает только до перезагрузки. Поможите, пожалуйста тугому)
Код MyService.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
package p0921servicesimple.develop.startandroid.ru.servise;
 
/**
 * Created by YJYJ on 16.10.2015.
 */
 
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
 
public class MyService extends Service {
 
    final String LOG_TAG = "myLogs";
 
    public void onCreate() {
        super.onCreate();
        Log.d(LOG_TAG, "onCreate");
    }
 
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.d(LOG_TAG, "onStartCommand");
        someTask();
        return super.onStartCommand(intent, flags, startId);
    }
 
    public void onDestroy() {
        super.onDestroy();
        Log.d(LOG_TAG, "onDestroy");
    }
 
    public IBinder onBind(Intent intent) {
        Log.d(LOG_TAG, "onBind");
        return null;
    }
 
 
 
 
    void someTask() {
    }
}


Код BootBroadReciev.java
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package p0921servicesimple.develop.startandroid.ru.servise;
 
 
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
 
/**
 * Created by YJYJ on 16.10.2015.
 */
public class BootBroadReciev extends BroadcastReceiver {
 
    final String LOG_TAG = "myLogs";
 
    public void onReceive(Context context,Intent intent) {
        if("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
            Log.d(LOG_TAG, "onReceive " + intent.getAction());
            context.startService(new Intent(context, MyService.class));
        }
    }
}


Код AndroidManifest.xml
Кликните здесь для просмотра всего текста
XML
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
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="p0921servicesimple.develop.startandroid.ru.servise" >
 
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme" >
        <activity android:name=".MainActivity" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
 
 
        <receiver android:name=".BootBroadReciev"
            android:enabled="true"
            android:exported="false"
            android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
            <intent-filter >
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <intent-filter >
                <action android:name="android.intent.action.ACTION_SHUTDOWN" />
            </intent-filter>
        </receiver>
        <service android:name=".MyService"/>
    </application>
 
 
 
</manifest>
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2015, 10:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не работает автозагрузка сервиса AndroidStudio (Программирование Android):

Стандартная функция delete в Eclipse работает а в AndroidStudio не работает - Программирование Android
case R.id.btnDelete: {//Кнопка удаление последнего символа ...

Как работает шаблон NavigationDrawer в AndroidStudio, где обрабатывать нажатия на навигационной панели? - Программирование Android
Всем здрасьте! Не могу никак понять, где в шаблоне, который генерирует Android Studio, вешать обработки нажатия на соответствующую...

Не запускается AndroidStudio - Программирование Android
Не запускается AndroidStudio,появляется стартовое окно и исчезает,никаких сообщений,логов тоже никаких не создает. JDK...

AndroidStudio автодополнение кода - Программирование Android
Есть ли подобное в Android Studio (IDEA)? Такое есть во многих языках, но здесь не нашел - жутко не хватает... Среди подсказок (окошко...

Ошибка в logcat AndroidStudio - Программирование Android
Здравствуйте! Написал простенькое приложенице в Студии, ошибок вроде нет. Но при запуске эмулятора приложение вылетает. Не могу понять...

Верстка в AndroidStudio, превью - Программирование Android
Доброго времени суток. Столкнулись с проблемой, хотя даже не с проблемой, а с неудобством. В AndroidStudio превью активити не...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Mikalai
256 / 232 / 93
Регистрация: 11.01.2015
Сообщений: 655
17.10.2015, 12:05 #2
Тут читал?
Vyazan
11 / 11 / 2
Регистрация: 19.03.2012
Сообщений: 108
18.10.2015, 11:49  [ТС] #3
Читал, делал, как там все. В тех вариантах тоже не работает ничего и флаг всегда возвращается равным 0
P0941_ServiceKillClient
Кликните здесь для просмотра всего текста

Код MainActivity.java
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package p0941servicekillclient.develop.startandroid.ru.servicekillclient;
 
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
 
public class MainActivity extends Activity {
 
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
 
    public void onClickStart(View v) {
        startService(new Intent("p0942servicekillserver.develop.startandroid.ru.servicekillserver.MyService").putExtra("name", "value"));
    }
}


Код AndroidManifest.xml
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="p0941servicekillclient.develop.startandroid.ru.servicekillclient" >
 
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme" >
        <activity android:name=".MainActivity" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
 
</manifest>



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

MyService.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
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
package p0942servicekillserver.develop.startandroid.ru.servicekillserver;
 
/**
 * Created by YJYJ on 18.10.2015.
 */
import java.util.concurrent.TimeUnit;
 
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
 
public class MyService extends Service {
 
    final String LOG_TAG = "myLogs";
 
    public void onCreate() {
        super.onCreate();
        Log.d(LOG_TAG, "MyService onCreate");
    }
 
    public void onDestroy() {
        super.onDestroy();
        Log.d(LOG_TAG, "MyService onDestroy");
    }
 
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.d(LOG_TAG, "MyService onStartCommand, name = " + intent.getStringExtra("name"));
        readFlags(flags);
        MyRun mr = new MyRun(startId);
        new Thread(mr).start();
        return START_REDELIVER_INTENT;
    }
 
    public IBinder onBind(Intent arg0) {
        return null;
    }
 
    void readFlags(int flags) {
        Log.d(LOG_TAG, "Читаем флаги");
        switch (flags) {
            case START_FLAG_REDELIVERY:
                Log.d(LOG_TAG, "readFlags: START_FLAG_REDELIVERY");
                break;
            case START_FLAG_RETRY:
                Log.d(LOG_TAG, "readFlags: START_FLAG_RETRY");
                break;
            case 0:
                Log.d(LOG_TAG, "readFlags: 0");
                break;
            default:
                Log.d(LOG_TAG, "readFlags: ERROR. Unexpected flag returned: " + flags);
        }
 
    }
 
    class MyRun implements Runnable {
 
        int startId;
 
        public MyRun(int startId) {
            this.startId = startId;
            Log.d(LOG_TAG, "MyRun#" + startId + " create");
        }
 
        public void run() {
            Log.d(LOG_TAG, "MyRun#" + startId + " start");
            try {
                TimeUnit.SECONDS.sleep(15);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            stop();
        }
 
        void stop() {
            Log.d(LOG_TAG, "MyRun#" + startId + " end, stopSelfResult("
                    + startId + ") = " + stopSelfResult(startId));
        }
    }
}

AndroidManifest.xml
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="p0942servicekillserver.develop.startandroid.ru.servicekillserver">
 
    <application android:allowBackup="true" android:label="@string/app_name"
        android:icon="@mipmap/ic_launcher" android:supportsRtl="true"
        android:theme="@style/AppTheme">
 
        <service android:name=".MyService">
            <intent-filter>
                <action
                    android:name="p0942servicekillserver.develop.startandroid.ru.servicekillserver.MyService">
 
                </action>
            </intent-filter>
        </service>
 
    </application>
 
</manifest>

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.10.2015, 11:49
Привет! Вот еще темы с ответами:

Запуск приложения в AndroidStudio - Программирование Android
Установил AndroidStudio импортировал туда приложение которое раньше замечательно запускалось в эклипс. При попытке запуска получаю...

Как реализовать таймер в AndroidStudio? - Программирование Android
Мне нужен пример использования таймера. Есть кнопка. Необходимо, чтобы по нажатию другой кнопки она программно нажималась каждую секунду: ...

Не могу проект запустить (AndroidStudio) - Программирование Android
Не могу проект запустить. Hello word Ругается на что-то. AndroidStudio jdk 8 стоит android-sdk лежит рядом с AndroidStudio см...

Стили в AndroidStudio для разных API - Программирование Android
Всем добрый день! Тема уже избитая, перечитал кучу всего, но все-таки не могу разобраться самостоятельно. Я создаю новое приложение в...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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