Главная » Учимся автоматически запускать приложение вместе с устройством | |
В этом уроке мы научимся запускать свое приложение вместе с загрузкой системы. То есть, когда вы перезапустите устройство, то наше приложение автоматически запуститься. Это может пригодиться в том случае, если вы создали что то типа антивируса, лаунчера или еще что то такое, что должно запускаться при запуске системы Android на устройстве. Реализация этой возможности довольно проста. В своем приложении мы должны прослушивать действие BOOT_COMPLETED и настраивать реакцию приложения в случае выполнения этого действия. Прослушивать это действие можно, используя BroadcastReceiver, который и будет запускать activity нашего приложения после того, как получит сигнал о свершении действия BOOT_COMPLETED. Создадим простое приложение, состоящее из всего одного текстового объекта TextView и будем запускать его при загрузке Android системы на устройстве. Создаем новый проект, открываем файл activity_main.xml и добавляем туда элемент TextView:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Приложение запущено"
android:padding="10pt"
android:textSize="12pt"
android:layout_gravity="center"/>
</LinearLayout>
Файл MainActivity.java в этот раз выглядит предельно просто:
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
Теперь беремся за создание того самого класса BroadcastReceiver. Он также будет предельно прост и состоит по сути всего из одного действия - запуска основной activity приложения с помощью намерения Intent. Создаем новый класс под названием AutoStart.java, который расширяется от BroadcastReceiver и добавляем в него следующее:
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class AutoStart extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Intent intent1 = new Intent(context, MainActivity.class);
intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent1);
}
}
Все что осталось сделать, это объявить о созданном классе в файле AndroidManifest.xml. Объявляем наш приемник события загрузки системы BOOT_COMPLETED, который будет получен программой с помощью intent, а также настраиваем разрешение на прослушивание действия загрузки системы RECEIVE_BOOT_COMPLETED:
<receiver
android:name=".AutoStart"
android:enabled="true"
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>
</receiver>
Вот и все, чтобы протестировать наше чудо Android приложение, нужно установить его на устройство и перезапустить аппарат - при запуске вы увидите, что вместе с системой запустилось и наше приложение! | |
|
Всего комментариев: 0 | |