我已经定义了在应用程序启动时启动的服务。
我在服务的 Toast
方法中有一个onCreate
来跟踪它的启动时间。
一切正常,但当我在其他应用程序或应用程序列表中时,会显示 onCreate
Toast
。这意味着我的服务已启动,但不是我的应用程序。
我的清单看起来像这样:
<permission
android:name="net.test.lib.service.SERVICE_PERMISSION"
android:protectionLevel="signature" />
<uses-permission android:name="net.test.lib.service.SERVICE_PERMISSION" />
<application ...>
<service
android:name="net.test.lib.service.MyService"
android:exported="false"
android:permission="net.test.lib.service.SERVICE_PERMISSION" >
<intent-filter>
<action android:name="net.test.lib.service.LAUNCH_SERVICE" />
</intent-filter>
</service>
</application>
我注意到虽然我的服务需要许可,但即使我没有为我的应用程序设置权限,我也可以启动它。
需要帮助,我被困......
修改
这是我的服务代码:
public class MyService extends Service {
private final IBinder _binder = new LocalBinder();
public class LocalBinder extends Binder {
public MyService getService() {
return MyService.this;
}
}
@Override
public IBinder onBind(Intent intent) {
return _binder;
}
@Override
public void onCreate() {
super.onCreate();
Toast.makeText(getBaseContext(),"Service.onCreate", Toast.LENGTH_LONG).show();
refresh();
}
public void refresh(){
[...]
}
@Override
public void onDestroy() {
super.onDestroy();
Toast.makeText(getBaseContext(),"onDestroy", Toast.LENGTH_LONG).show();
}
}
我可以在没有许可的情况下启动我的服务,尽管我的服务需要一个。奇怪的...