2014-10-01 4 views
0

Из документов я понимаю, что наша программа переходит в фоновый режим, когда мы открываем another_one, после чего андроид будет вызывать onDestroy(), чтобы вернуть свои ресурсы; Но наша программа похожа на наблюдателя (представьте, что у нас есть медиаплеер, который играет музыку в backGround), и он не должен закрываться до тех пор, пока int programState == 1 (есть кнопка питания, которая заканчивает игрока или наблюдателя). Кроме того, я узнал, что мы можем оставаться на переднем плане с «уведомлением», которое так круто (но я не знаю, как)! Вот код уведомления:Оставайтесь на переднем плане с помощью уведомления, как?

in Activity's onCreate(){ 

     //> reading some data and define some initial values . 


     mNM = (NotificationManager)getSystemService(NOTIFICATION_SERVICE); 

     Notification app_notfiy =addNotification(); 

     //> still should perform somehing ?!? 



} 



    private Notification addNotification() { 



    NotificationCompat.Builder builder = 
      new NotificationCompat.Builder(this) 
      .setSmallIcon(R.drawable.ic_launcher_new) 
      .setContentTitle(getText(string.app_name)) 
      .setContentText("> This is a notification !?") 
      .setUsesChronometer(true) 
      ; 

    Intent notificationIntent = new Intent(this, MainActivity.class); 
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0,  notificationIntent,PendingIntent.FLAG_UPDATE_CURRENT); 
    builder.setContentIntent(contentIntent); 


    return builder.build() ; 

    } 

Но здесь у нас есть 2 проблемы. Во-первых, я не думаю, что уведомление действительно привязано к Activity (возможно, ему нужны некоторые разрешения или использование сервиса не обязательно!?)! Затем я хочу, чтобы уведомление возобновилось, приложение не перезапустило его! (Я думаю, что он начинает работать с onCreate()) Как заставить его вернуться туда, где мы были?

Я искал много, но до сих пор не нашел хороших ответов об этом. Есть идеи ?

+0

Я не совсем уверен, что здесь для вас используется, но похоже, что вы ищете Службу. http://thorbek.net/online/2013/10/16/mediaplayer-in-background/ –

+0

@TomislavNovoselec: Хороший пример. Это может решить мою проблему. танки. –

ответ

0

Для этого вы должны использовать Service. Посмотрите на this tutorial.

Вы можете начать сервис как «сервис переднего плана», который работает в фоновом режиме и вряд ли когда-либо будет убит системой.

Для этого позвоните startForeground(id, notification).

+0

Идти читать.^_ ^ –