dk.dr.radio.afspilning.HoldAppIHukommelsenService.java Source code

Java tutorial

Introduction

Here is the source code for dk.dr.radio.afspilning.HoldAppIHukommelsenService.java

Source

/**
 DR Radio 2 is developed by Jacob Nordfalk, Hanafi Mughrabi and Frederik Aagaard.
 Some parts of the code are loosely based on Sveriges Radio Play for Android.
    
 DR Radio 2 for Android is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License version 2 as published by
 the Free Software Foundation.
    
 DR Radio 2 for Android is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 See the GNU General Public License for more details.
    
 You should have received a copy of the GNU General Public License along with
 DR Radio 2 for Android.  If not, see <http://www.gnu.org/licenses/>.
    
 */
package dk.dr.radio.afspilning;

import android.app.Notification;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.support.v4.app.NotificationCompat;

import dk.dr.radio.R;
import dk.dr.radio.akt.Afspilning_akt;
import dk.dr.radio.diverse.AfspillerWidget;
import dk.dr.radio.diverse.Log;

/**
 * Srger for at app'en holdes i hukommelsen
 *
 * @author j
 */
public class HoldAppIHukommelsenService extends Service {
    /**
     * Service-mekanik. Ligegyldig, da vi krer i samme proces.
     */
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    /**
     * ID til notifikation i toppen. Skal bare vre unikt og det samme altid
     */
    private static final int NOTIFIKATION_ID = 117;

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.d("AfspillerService onStartCommand(" + intent + " " + flags + " " + startId);

        String kanalNavn = intent == null ? null : intent.getStringExtra("kanalNavn");
        if (kanalNavn == null)
            kanalNavn = "";

        NotificationCompat.Builder b = new NotificationCompat.Builder(this)
                .setSmallIcon(R.drawable.notifikation_ikon).setContentTitle("DR Radio").setContentText(kanalNavn)
                .setContentIntent(PendingIntent.getActivity(this, 0, new Intent(this, Afspilning_akt.class), 0))
                .setContent(AfspillerWidget.lavRemoteViews());

        //notification = new Notification(R.drawable.notifikation_ikon, null, 0);
        Notification notification = b.build();

        // PendingIntent er til at pege p aktiviteten der skal startes hvis brugeren vlger notifikationen
        //notification.contentIntent = PendingIntent.getActivity(this, 0, new Intent(this, Afspilning_akt.class), 0);
        notification.flags |= (Notification.FLAG_NO_CLEAR | Notification.FLAG_ONGOING_EVENT);

        //notification.setLatestEventInfo(this, "Radio", kanalNavn, notification.contentIntent);
        startForeground(NOTIFIKATION_ID, notification);
        return START_STICKY;
    }

    @Override
    public void onDestroy() {
        Log.d("AfspillerService onDestroy!");
        stopForeground(true);
    }
}