2014-10-08 41 views
0

我在商店有一个应用程序,一些用户表示,该应用程序使用太多的电池,或者他的资源(10或20mb +)高。在我的设备中,如果看到它的话,它的性能很好,只需几个设备。如何优化电池和资源的短信后台服务

我使用短信广播接收器来读取所有发送短信,如果我看到任何消息,我想处理我读它等。所以基本上服务需要运行所有的时间,所以我不会失去任何消息,可能会来。

有没有一种方法来优化这个或者如果可能使代码更轻以便所有的用户都可以使用它呢?我知道它可能因设备不同而不同,从Android版本到版本,但给它一个镜头会很好。

我没有尝试任何东西,因为我没有线索可能是什么问题,或者如果实际上有一个。我搜索了一点,人们说服务不应该一直运行,应该重新启动几次或在不需要时关闭它。但我的短信接收器需要一直运行。

任何想法或任何我应该检查?

我的服务的方式是startForeground,所以它不会从android关闭。

谢谢您的时间

回答

1

您不需要经常运行的服务来接收传入的短信。只需在清单中注册BroadcastReceiver类,然后在onReceive()中启动IntentService,以处理您需要执行的任何处理。 IntentService完成后将自行停止。您的应用程序不需要为静态注册的接收器发送SMS_RECEIVED广播的活动组件。接收器将在交付意图时由系统启动。

+0

如果手机重新启动,我不打开应用程序会怎么样。短信广播是否会激活,然后阅读发送的短信? – 2014-10-08 12:40:07

+0

是的。安装完成后,用户需要运行一次你的应用程序才能将其从_stopped_状态(至少在较新的Android版本上)中移除,但除此之外,Receiver将被注册以接收所有相关广播。 – 2014-10-08 12:44:48

+0

在每次重新启动后运行应用程序一次,你的意思是对的? – 2014-10-08 13:12:55