Bir Etkinlikten başladığım ve bindiğim bir hizmetim var. Etkinliğin OnDestroy yönteminde hizmete katılıyorum. Servis Bir bildirim görüntüler ve ben onu ön plana koymak için startForeground() kullanırım. Hizmetin onUnbind() yönteminde stopself() ve stopForeground (true) olarak adlandırıyorum. Ancak hizmetin çalışmayı durdurmadığı anlaşılıyor. App kapalı ve bildirim gitti ama android stüdyoda android bellek monitörü devam ediyor. Bu neden oluyor? Hizmette stopForeground() işlevini çağıran bir işlev oluşturursam ve bunu Etkinliğin OnDestroy'undan önce çağırırsam, uygulama düzgün kapanır. Bellek monitörü durur. OnCreate içindeAndroid Service Marshmallow'ta Durmaya Devam Et
MainActivity(): OnDestroy içinde
service = new Intent(MainActivity.this, Service.class);
service.setAction("START");
startService(service);
if(myservice == null)
{
Intent k = new Intent(this,Service.class);
bindService(k, myConnection, Context.BIND_AUTO_CREATE);
}
MainActivity()
unbindService(myConnection);
Servis OnCreate()
Intent notificationIntent = new Intent(this, MainActivity.class);
notificationIntent.setAction("new");
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_CLEAR_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,
notificationIntent, 0);
Bitmap icon = BitmapFactory.decodeResource(getResources(),
R.drawable.ic_launcher);
Notification notification = new NotificationCompat.Builder(this)
.setContentTitle("Myservice")
.setTicker("service")
.setContentText("Monitoring")
.setSmallIcon(R.drawable.ic_launcher)
.setLargeIcon(Bitmap.createScaledBitmap(icon, 128, 128, false))
.setContentIntent(pendingIntent)
.setOngoing(true).build();
startForeground(101, notification);
"Ama android stüdyosundaki android bellek monitörü devam ediyor" - "Devam et" ifadesinin ne anlama geldiğini bilmiyorum. Bir servisin durmasından dolayı işleminiz gitmiyor. [Prosesiniz bir süre çalışmaya devam edecektir] (http://developer.android.com/guide/components/processes-and-threads.html#Processes). Benzer şekilde, kendiniz için belirttiğiniz iş parçacıkları gibi, oluşturduğunuz tüm devam eden işler çalışmaya devam eder. Hizmetiniz bu tür bir şey yaptıysa, bu şeyleri onDestroy() 'ya da başka olası bir noktadan temizlemeniz gerekir. – CommonsWare
@ CommonsWare- Bu sorun neden bir Bildirim ve StartForground() kullandığımda ortaya çıkıyor? – amanda45
"Bu problem" in ne olduğunu bilmediğimden, buna cevap veremem. Lütfen sorunuzu düzenlemeyi ve daha ayrıntılı olarak, "android stüdyosunda android bellek monitörünün devam etmesini" neyin ne anlama geldiğini açıklamayı düşünün. – CommonsWare