package android.app; import android.app.Application; import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.ContentResolver; import android.content.Intent; import android.content.IntentFilter; import android.content.ServiceConnection; import android.os.Handler; /** * 插件对Application的包装 * * @author zhaoxuyang * */ public class PluginApplication extends Application { /** * 对应插件的名称 */ private String pluginName; /** * contentresolver */ private PluginContentResolver mContentResolver; @Override public void startActivity(Intent intent) { PluginManagerImpl.getInstance().startPluginActivity(intent); } @Override public ComponentName startService(Intent service) { return PluginManagerImpl.getInstance().startPluginService(service); } @Override public boolean stopService(Intent name) { return PluginManagerImpl.getInstance().stopPluginService(name); } @Override public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter) { return PluginManagerImpl.getInstance().registerReceiver(this, pluginName, receiver, filter); } @Override public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter, String broadcastPermission, Handler scheduler) { return PluginManagerImpl.getInstance().registerReceiver(this, pluginName, receiver, filter, broadcastPermission, scheduler); } @Override public void unregisterReceiver(BroadcastReceiver receiver) { PluginManagerImpl.getInstance().unregisterReceiver(this, pluginName, receiver); } /** * 设置对应的插件名称 * * @param pluginName * 插件包名 */ public void setPluginName(String pluginName) { this.pluginName = pluginName; } @Override public ContentResolver getContentResolver() { if (mContentResolver == null) { mContentResolver = new PluginContentResolver(this); } return mContentResolver; } @Override public boolean bindService(Intent service, ServiceConnection conn, int flags) { return PluginManagerImpl.getInstance().bindPluginService(service, conn, flags); } @Override public void unbindService(ServiceConnection conn) { PluginManagerImpl.getInstance().unbindPluginService(conn); } }