当活动被破坏时,这项服务会否死?

时间:2014-08-16 13:36:02

标签: android android-service

我有一个自定义类来检查条件然后运行MyService,否则如果条件为false则它什么都不做。我的自定义类的实例是在应用程序的MainActivity中创建的。

Inside MyService:onStartCommand:返回sticky,onCreate:将在该线程中创建新线程,在runnable内部将完成其他工作,如创建新线程,异步任务等。除了通知之外没有任何关系。

除了用户杀死它或系统内存耗尽外,MyService还有其他方法可以死吗?

1 个答案:

答案 0 :(得分:0)

如果用户从最近的应用中删除了应用,服务将会消失。此外,如果应用程序崩溃,服务将会死亡。
如果即使内存不足也要运行服务,请在前台开始运行服务。但是在前台运行服务会导致连续显示通知。
在前台运行的服务不是系统在内存不足时杀死的候选者。如果是前台服务,您可以显示自定义通知,如下所示:

Notification notification = new Notification(R.drawable.icon, getText(R.string.ticker_text),
        System.currentTimeMillis());
Intent notificationIntent = new Intent(this, ExampleActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
notification.setLatestEventInfo(this, getText(R.string.notification_title),
        getText(R.string.notification_message), pendingIntent);
startForeground(ONGOING_NOTIFICATION_ID, notification);

在服务类中添加以上代码。 即使将通知传递为NULL,系统也会使用应用程序默认标题和图标显示自己的通知。

点击此链接了解详情http://developer.android.com/guide/components/services.html#Foreground