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

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

Войти
Регистрация
Восстановить пароль
 
student71
0 / 0 / 0
Регистрация: 30.04.2014
Сообщений: 4
#1

Пример приложения, которое запускается в качестве service (и периодически делает определенную работу в threade) - Android

01.05.2014, 08:26. Просмотров 990. Ответов 0
Метки нет (Все метки)

Я написал приложение, которое, к сожалению, не запускается при загрузке. Я знаю (теоретически) изменения в политике BroadcastReceiver начиная с 3.1 версии. Объясните как зарегистрировать service из activity?

class AlarmScheduleActivity

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
public class AlarmScheduleActivity extends Activity {
 
// UI parameters
Button btnStart;
Button btnStop;
 
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
 
    setContentView(R.layout.main);
 
    btnStart = (Button)findViewById(R.id.button1);
    btnStop = (Button)findViewById(R.id.button2);       
}
 
public void btnStartSchedule(View v) {
 
    try {
        AlarmManager alarms = (AlarmManager) this
                .getSystemService(Context.ALARM_SERVICE);
 
        Intent intent = new Intent(getApplicationContext(),
                AlarmReceiver.class);
        intent.putExtra(AlarmReceiver.ACTION_ALARM,
                AlarmReceiver.ACTION_ALARM);
 
        final PendingIntent pIntent = PendingIntent.getBroadcast(this,
                1234567, intent, PendingIntent.FLAG_UPDATE_CURRENT);
 
        alarms.setRepeating(AlarmManager.RTC_WAKEUP,
                System.currentTimeMillis(), 2000, pIntent);                     
 
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
 
}
 
public void btnCancelSchedules(View v) {
 
    Intent intent = new Intent(getApplicationContext(),
            AlarmReceiver.class);
    intent.putExtra(AlarmReceiver.ACTION_ALARM,
            AlarmReceiver.ACTION_ALARM);
 
    final PendingIntent pIntent = PendingIntent.getBroadcast(this, 1234567,
            intent, PendingIntent.FLAG_UPDATE_CURRENT);
 
    AlarmManager alarms = (AlarmManager) this
            .getSystemService(Context.ALARM_SERVICE);
 
    alarms.cancel(pIntent);
}
}
class AlarmReceiver

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class AlarmReceiver extends BroadcastReceiver {
 
public static String ACTION_ALARM = "com.alarammanager.alaram";
 
 @Override
 public void onReceive(Context context, Intent intent) {
 
  Bundle bundle = intent.getExtras();
  String action = bundle.getString(ACTION_ALARM);
  if (action.equals(ACTION_ALARM)) {
 Log.i("Alarm Receiver", "If loop");
 Intent inService = new Intent(context,TaskService.class);
 context.startService(inService);
  }
 }
}
class BootBroadcastReceiver

Java
1
2
3
4
5
6
7
8
9
10
11
12
public class BootBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    Intent alarmIntent = new Intent("com.company.android.AlarmReceiver");
    PendingIntent pi = PendingIntent.getBroadcast(context, 0, alarmIntent,
    PendingIntent.FLAG_UPDATE_CURRENT);
 
    AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
    am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, System.currentTimeMillis(),
  2000, pi);
}
}
class TaskService

Java
1
2
3
4
5
6
7
8
9
10
11
public class TaskService extends IntentService {
public TaskService() {
    super("TaskService");
    // TODO Auto-generated constructor stub
}
@Override
protected void onHandleIntent(Intent arg0) {
    // Do some task
    Log.i("TaskService", "Service running: yes-yes-yes");
}
}
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
  <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>    
<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".AlarmScheduleActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
<receiver android:name=".BootBroadcastReceiver"
        android:enabled="true" >
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</receiver>
<receiver
        android:name="AlarmReceiver"
        android:process=":remote" >
</receiver>
<service android:name=".TaskService" >
</service>
</application>
Добавлено через 21 час 5 минут
Есть идеи?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.05.2014, 08:26     Пример приложения, которое запускается в качестве service (и периодически делает определенную работу в threade)
Посмотрите здесь:

Создание приложения которое будет выгружать базу звонков и ставить комментарии к ним Android
Не запускается форма с WebView пример Android
Android Пример приложения
Пример простейшего приложения со swipe-меню на Android Android
Не запускается приложения эмулятор на андройд Android
Нужен простой пример программы на ява приложения для дипломной Android
Как создать layout, который запускается один раз, при первом запуске приложения? Android
Создание радио приложения которое будет продолжать играть в фоне Android
Android Service, работающий даже после выключения пользователем приложения Android
Пример AdMob компилируется, но не запускается Android
Android Приложение запускается из play, но не запускается с рабочего стола
Android Остановить работу приложения на 2 секунды

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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