2012-09-13 57 views
6

我创建了一个应用程序,它在Service.onStartCommand()方法执行时显示通知,并在调用Service.onDestroy()时隐藏通知。它的工作正常调用startService()和stopService()。当Android操作系统销毁服务时删除通知

服务代码:

@Override 
public IBinder onBind(Intent intent) 
{ 
    return null; 
} 
@Override 
public void onCreate() 
{ 
    super.onCreate(); 
    nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE); 
} 

@Override 
public int onStartCommand(Intent intent, int flags, int startId) 
{ 
    //Some code here 
    showNotification(); 
    return START_NOT_STICKY; 
} 

@Override 
public void onDestroy() 
{ 
    super.onDestroy(); 
    nm.cancel(R.string.service_started); 
} 

问题:当我的服务是由Android操作系统被破坏()(在不用时,称为onDestroy()),那么通知不会被删除。那么如何在Android操作系统本身销毁服务时删除通知?

回答

0

最有可能你没有停止你的服务

+0

我米停止服务,这是工作正常的情况下。但是当我的服务被android操作系统()(可能是内存不足或其他东西)破坏时,那么如何删除通知 – user1041858

+0

@ user1041858为什么你认为在这种情况下不会调用onDestroy? –

+0

当android系统自动销毁服务时,我有这个问题。 – user1041858

0

重写onStop方法的生命周期正常工作。

1

你应该使用这个你想停止服务的地方,这将关闭你的通知和最终服务。

stopService(new Intent(MainActivity.this,MyService.class));