Android - 什么开始我的服务?

时间:2012-12-03 04:07:11

标签: android android-service

我有一项服务,用于上传所选文件,而用户则不做其他事情。它在我的应用程序告诉它时启动,并在我的应用程序告诉它时停止。但出于某种原因,我在使用其他应用时看似随机的时间开始通知我的服务。有没有办法确定什么告诉我的服务开始?

它是标准服务,因为它扩展了Service,并且绑定到了我的UploadScreenActivity。

onCreate非常简单:

public void onCreate() {
    instance = this;
    if(connectivityManager == null){
            connectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
    }
    mNM = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);

    Toast.makeText(this, "Service started", Toast.LENGTH_SHORT).show();
}

在导航其他应用程序时,“服务已启动”通知似乎在随机时间出现。

我的服务代码基于服务文档中的本地服务示例:http://developer.android.com/reference/android/app/Service.html

2 个答案:

答案 0 :(得分:0)

系统不会自行启动您的服务。应用程序是否在广播接收器中侦听外部任何内容?如果没有,你必须在你的代码中的某个地方启动它。我会加强伐木并密切注意它。或者将事件发布到错误记录服务(bugsense,acra等)。

您的代码的哪些部分启动了该服务?我从那里开始。奥卡姆剃刀。

答案 1 :(得分:0)

您是否为服务定义了一个意图过滤器,允许其他应用程序隐式启动您的服务。 这个来自android devlopers的引用可能会有所帮助: 机器人:出口 其他应用程序的组件是否可以调用服务或与之交互 - 如果可以,则为“true”,否则为“false”。当值为“false”时,只有相同应用程序的组件或具有相同用户ID的应用程序才能启动该服务或绑定到该服务。