android.app.Service#onDestroy ( )源码实例Demo

下面列出了android.app.Service#onDestroy ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: AndroidComponentPlugin   文件: ServiceManager.java
/**
 * 停止某个插件Service, 当全部的插件Service都停止之后, ProxyService也会停止
 *
 * @param targetIntent targetIntent
 * @return int
 */
int stopService(Intent targetIntent) {
    ServiceInfo serviceInfo = selectPluginService(targetIntent);
    if (serviceInfo == null) {
        Log.e(TAG, "can not found service: " + targetIntent.getComponent());
        return 0;
    }
    Service service = mServiceMap.get(serviceInfo.name);
    if (service == null) {
        Log.w(TAG, "can not running, are you stopped it multi-times?");
        return 0;
    }
    service.onDestroy();
    mServiceMap.remove(serviceInfo.name);
    if (mServiceMap.isEmpty()) {
        // 没有Service了, 这个没有必要存在了
        Log.d(TAG, "service all stopped, stop proxy");
        Context appContext = MApplication.getInstance();
        appContext.stopService(new Intent().setComponent(new ComponentName(appContext.getPackageName(), PluginProxyService.class.getName())));
    }
    return 1;
}
 
/**
 * 停止某个插件Service, 当全部的插件Service都停止之后, ProxyService也会停止
 * @param targetIntent
 * @return
 */
public int stopService(Intent targetIntent) {
    ServiceInfo serviceInfo = selectPluginService(targetIntent);
    if (serviceInfo == null) {
        Log.w(TAG, "can not found service: " + targetIntent.getComponent());
        return 0;
    }
    Service service = mServiceMap.get(serviceInfo.name);
    if (service == null) {
        Log.w(TAG, "can not runnning, are you stopped it multi-times?");
        return 0;
    }
    service.onDestroy();
    mServiceMap.remove(serviceInfo.name);
    if (mServiceMap.isEmpty()) {
        // 没有Service了, 这个没有必要存在了
        Log.d(TAG, "service all stopped, stop proxy");
        Context appContext = UPFApplication.getContext();
        appContext.stopService(new Intent().setComponent(new ComponentName(appContext.getPackageName(), ProxyService.class.getName())));
    }
    return 1;
}
 
源代码3 项目: AndroidComponentPlugin   文件: ServiceManager20.java
/**
 * 停止某个插件Service, 当全部的插件Service都停止之后, ProxyService也会停止
 *
 * @param targetIntent targetIntent
 * @return int
 */
public int stopService(Intent targetIntent) {
    ServiceInfo serviceInfo = selectPluginService(targetIntent);
    if (serviceInfo == null) {
        Log.w(TAG, "can not found service: " + targetIntent.getComponent());
        return 0;
    }
    String processName3 = ProcessUtil.getProcessNameViaManager(MApplication.getInstance());
    Log.d(TAG, "3processName:" + processName3);
    Log.d(TAG, "3mServiceMap.size:" + mServiceMap.size());
    Log.d(TAG, "3mServiceMap.get(serviceInfo.name):" + serviceInfo.name);

    Service service = mServiceMap.get(serviceInfo.name);
    if (service == null) {
        Log.w(TAG, "can not runnning, are you stopped it multi-times?");
        return 0;
    }
    service.onDestroy();
    mServiceMap.remove(serviceInfo.name);
    if (mServiceMap.isEmpty()) {
        // 没有Service了, 这个没有必要存在了
        Log.d(TAG, "service all stopped, stop proxy");
        Context appContext = MApplication.getInstance();
        appContext.stopService(new Intent().setComponent(new ComponentName(appContext.getPackageName(), PluginProxyService.class.getName())));
    }
    return 1;
}
 
源代码4 项目: letv   文件: ServcesManager.java
private void handleOnDestroyOne(ServiceInfo targetInfo) {
    Service service = (Service) this.mNameService.get(targetInfo.name);
    if (service != null) {
        service.onDestroy();
        this.mNameService.remove(targetInfo.name);
        Object token = findTokenByService(service);
        this.mTokenServices.remove(token);
        this.mServiceTaskIds.remove(token);
        QueuedWorkCompat.waitToFinish();
        ApkManager.getInstance().onServiceDestory(null, targetInfo);
    }
    QueuedWorkCompat.waitToFinish();
}
 
源代码5 项目: letv   文件: ServcesManager.java
public void onDestroy() {
    for (Service service : this.mTokenServices.values()) {
        service.onDestroy();
    }
    this.mTokenServices.clear();
    this.mServiceTaskIds.clear();
    this.mNameService.clear();
    QueuedWorkCompat.waitToFinish();
}
 
源代码6 项目: DroidPlugin   文件: ServcesManager.java
private void handleOnDestroyOne(ServiceInfo targetInfo) {
    Service service = mNameService.get(targetInfo.name);
    if (service != null) {
        service.onDestroy();
        mNameService.remove(targetInfo.name);
        Object token = findTokenByService(service);
        mTokenServices.remove(token);
        mServiceTaskIds.remove(token);
        service = null;
        QueuedWorkCompat.waitToFinish();
        PluginManager.getInstance().onServiceDestory(null, targetInfo);
    }
    QueuedWorkCompat.waitToFinish();
}
 
源代码7 项目: DroidPlugin   文件: ServcesManager.java
public void onDestroy() {
    for (Service service : mTokenServices.values()) {
        service.onDestroy();
    }
    mTokenServices.clear();
    mServiceTaskIds.clear();
    mNameService.clear();
    QueuedWorkCompat.waitToFinish();
}
 
源代码8 项目: deagle   文件: LocalAidlServices.java
static void destroyService(final Service service) {
	unregisterComponentCallbacks(service.getApplication(), service);
	try {
		final long start = Debug.threadCpuTimeNanos();
		service.onDestroy();
		logExcessiveElapse(start, 5, service, ".onDestroy()");
	} catch (final RuntimeException e) {
		Log.e(TAG, "Error destroying " + service, e);
	}
}