Android: сверните значок приложения и дисплея - PullRequest
1 голос
/ 23 декабря 2010

Привет,

Я почти закончил разработку своего приложения для Android, однако я бы хотел, чтобы у пользователя была возможность минимизировать его запуск в фоновом режиме и получать оповещения при возникновении какого-либо события.

Однако я не знаю, с чего начать. Я пытаюсь заставить значок показываться в строке состояния, но безрезультатно. По сути, мне бы хотелось, чтобы функциональность была похожа на приложение «Trapster», в котором появляется маленький значок и приложение уведомляет вас, когда вы приближаетесь к скоростной камере!

Вот код, который у меня есть, софар:

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.widget.Toast;

public class Background extends Service{

    @Override
    public IBinder onBind(Intent arg0) {
        // TODO Auto-generated method stub
        return null;
    }
    @Override
    public void onCreate() {
          super.onCreate();
          Toast.makeText(this,"Service created ...", Toast.LENGTH_LONG).show();
    }

    @Override
    public void onDestroy() {
          super.onDestroy();
          Toast.makeText(this, "Service destroyed ...", Toast.LENGTH_LONG).show();
    }
}

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

<uses-permission
    android:name="android.permission.ACCESS_BACKGROUND_SERVICE" />

1 Ответ

6 голосов
/ 23 декабря 2010

Ты пока на хорошем пути. Создание того, что вам нужно, требует различных шагов:

  • Создание Сервиса , как вы начали делать. Tha Javadoc для этого класса объясняет, как служба работает намного лучше, чем я, поэтому я позволю вам прочитать ее.
  • Чтобы отобразить значок в строке состояния, используйте NotificationManager в вашей службе.
  • Наконец, возникает вопрос, когда запускать ваш сервис. У вас есть две возможности:
    • Запустите его в своей деятельности и дайте сервису работать: это когда вам приходится выполнять долгую операцию и вы хотите, чтобы пользователь был в курсе происходящего
    • Периодически запускать его и затем возвращать в спящий режим: используйте этот метод, если вам нужно только периодически что-то проверять. Для этого использования вы можете использовать AlarmManager
...