SORU
13 HAZİRAN 2009, CUMARTESİ


hizmet sadece android uygulaması

Planda (temelde bir proxy sunucusu) çalıştıran tutan bir servis olan bir uygulama yaratıyorum ama bu hizmeti başlatmak için nasıl bir yol bulmak mümkün değil. Uygulama Faaliyeti kullanıyorum yani herhangi bir kullanıcı arabirimi veya kullanıcı etkileşimi olabilir. Yayın alıcısı ÖNYÜKLEME yayın ama nasıl yüklendiğinde hizmet ilk zaman başlamalıyım ve nasıl çalışmaya devam edebilir miyim? dinleyebilirsiniz ya da örneğin uygulama yüklendikten sonra dinleyebilirim hangi bir yayın TİME_TİCK olabilir ama bence etkinlikten kayıtlı olmalı

CEVAP
13 HAZİRAN 2009, CUMARTESİ


Ne yazık ki şu anda uygulaması yüklendikten sonra yayın bir olay almak için güvenilir bir yoldur, ACTION_PACKAGE_ADDED Niyet yeni yüklenen paket yayın yok.

ACTION_BOOT_COMPLETED alma olayı için yayın alıcı bir sınıf olarak hizmet etmek zorunda kalacak. Ben de tavsiye ekleyerek ACTION_USER_PRESENT niyet yakalanmak ile yayın alıcısı, bu gerektirir Android 1.5 (minSDK=3), Bu çağrı yayın alıcısı her kullanıcı kendi telefon kilidini açar. Son şey, sen-ebilmek yapmaya devam hizmetiniz çalıştırmadan sahip olmak kolay kapatma otomatik olarak çağırmak için Service.setForeground() servis onCreate söyle Android hizmetiniz olmamalı durdu, bu eklendi ağırlıklı olarak mp3 player gibi hizmetler var, koşmaya devam ama olabilir, herhangi bir hizmet.

Sen boot_complete için uygun izinleri ekleyin ve olayları user_present tezahür emin olun.

İşte olaylar için yayın alıcısı olarak kullanabileceğiniz basit bir sınıf.

package com.snctln.util.WeatherStatus;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class WeatherStatusServiceReceiver extends BroadcastReceiver
{
    @Override
    public void onReceive(Context context, Intent intent)
    {
    	if(intent.getAction() != null)
    	{
    		if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED) ||
    		    intent.getAction().equals(Intent.ACTION_USER_PRESENT))
    		{
    			context.startService(new Intent(context, WeatherStatusService.class));
    		}
    	}
    }
};

İyi şanslar.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • apenney888

    apenney888

    27 EKİM 2010
  • Kupa World

    Kupa World

    1 EYLÜL 2011
  • Strata1000

    Strata1000

    28 EYLÜL 2009