Могу ли я запустить действие из начальной загрузки и сделать так, чтобы оно ушло в фоновый режим, не видя пользователя, android - PullRequest
0 голосов
/ 02 сентября 2011

На данный момент у меня есть код, который запускает приложение при загрузке, но открывает его на переднем плане. Это было сделано

 public void onReceive(Context context, Intent intent) {
    if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
        Intent start = new Intent(context, ApolloMobileActivity.class);  
        start.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(start);

Затем, чтобы отправить его в фоновый режим при загрузке, я создал еще один Java-файл, StartAtBootService поэтому я изменил класс получателя на:

if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
  Intent i = new Intent();
  i.setAction("com.example.ssab.StartAtBootService");
  context.startService(i);
                    }

А класс обслуживания был

 public class StartAtBootService extends Service 
 {
    public IBinder onBind(Intent intent)
    {
        return null;
    }

    @Override
    public void onCreate() 
    {
        Log.v("StartServiceAtBoot", "StartAtBootService Created");
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) 
    {
        Log.v("StartServiceAtBoot", "StartAtBootService -- onStartCommand()");          

        // We want this service to continue running until it is explicitly
        // stopped, so return sticky.
        return START_STICKY;
    }

    /*
     * In Android 2.0 and later, onStart() is depreciated.  Use
     * onStartCommand() instead, or compile against API Level 5 and
     * use both.
     * http://android-developers.blogspot.com/2010/02/service-api-changes-starting-with.html
        @Override
        public void onStart(Intent intent, int startId)
        {
            Log.v("StartServiceAtBoot", "StartAtBootService -- onStart()");         
        }
     */

    @Override
    public void onDestroy() 
    {
        Log.v("StartServiceAtBoot", "StartAtBootService Destroyed");
    }
 }

Можно ли изменить StartAtBootService для запуска действия в другом Java-файле с именем ApolloMobileActivity в фоновом режиме? Я протестировал этот код, и хотя он запускается в фоновом режиме при загрузке, он не запускает код в ApolloMobileActivity.

Пожалуйста, помогите! Спасибо, ребята:)

1 Ответ

1 голос
/ 02 сентября 2011

Активность - это компонент приложения , который предоставляет экран с какие пользователи могут взаимодействовать , чтобы что-то сделать, например набрать телефон, сфотографировать, отправить по электронной почте или просмотреть карту. Каждый вид деятельности дано окно для рисования его пользовательского интерфейса . Окно обычно заполняет экран, но может быть меньше, чем экран и плавать поверх других окон.

от Деятельность

Вы можете начать действие, но такого понятия, как невидимое действие, не существует. Это UI-компоненты. Если вы хотите выполнять невидимую работу в фоновом режиме, вы должны делать это в своем сервисе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...