无法持久保存Android服务

时间:2015-08-06 00:07:14

标签: java android service aidl persist

我正在尝试编写一个Android服务,该服务将由多个不同的客户端应用程序访问。

这是针对我们自己的硬件上的一个非常具体的应用程序,我知道强制服务持续存在(性能和电池寿命)的潜在缺陷,但我仍然需要这样做。

当我将服务作为应用程序的一部分运行时(即清单中的服务元素没有android:process属性),它运行正常并且不会崩溃或停止。但是,当我将它作为一个单独的进程运行时,它会被重复杀死并重新启动。这种行为对我的应用程序来说是不受欢迎的。

到目前为止,我已尝试在服务中使用startForeground命令,如下所示:

    Intent notificationIntent = new Intent(this, MainActivity.class);

    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,
            notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

    Notification notification = new NotificationCompat.Builder(this)
            .setSmallIcon(R.drawable.ic_stat_name)
            .setContentText("Text")
            .setContentTitle("Description")
            .setContentIntent(pendingIntent).build();

    startForeground(123, notification);

这似乎不起作用,因为该过程仍然被杀死并不断重启。我错过了这种方法吗?

我可以尝试的其他替代方法是从/system/app/运行应用程序,但我还没有尝试过。有没有一种简单的方法可以让Android Studio在我的调试配置中部署我的应用程序,而我仍在使用它? (是的,我在设备上有root访问权限)。或者至少,我如何手动移动它并运行它?

我正在使用Android API 21。

0 个答案:

没有答案