我有一次我想要使用的服务,只有一次。
我第一次启动服务后,通过以下方式禁用它:
Uint8Array.prototype.getBitSum=function() {
var _t=0;
[].forEach.call(this, function(v, i) { _t+=Math.pow(256,i)*v; });
return _t;
}
Uint8Array.prototype.getBit=function(b) {
var _t=this.getBitSum();
return ((_t & Math.pow(2,b)) != false);
}
Uint8Array.prototype.setBit=function(b, v) {
var _v=v;
if (isNaN(_v)) return false;
var _B=Math.floor(b/8), _B_b=(b%8);
if (_v) this[_B]|=Math.pow(2,_B_b);
else this[_B]&=(255-Math.pow(2,_B_b));
return true;
}
再次调用ComponentName componentName = new ComponentName(context, MyService.class);
PackageManager pm = context.getPackageManager();
pm.setComponentEnabledSetting(componentName,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
将无效(按预期)。
我的问题是:以这种方式做我想做的事情有问题吗?我能想到的唯一选择是使用保存在SharedPreferences中的标志。