本文整理汇总了Java中com.google.android.apps.dashclock.api.internal.IExtension类的典型用法代码示例。如果您正苦于以下问题:Java IExtension类的具体用法?Java IExtension怎么用?Java IExtension使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
IExtension类属于com.google.android.apps.dashclock.api.internal包,在下文中一共展示了IExtension类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: _createUpdateOperation
import com.google.android.apps.dashclock.api.internal.IExtension; //导入依赖的package包/类
private static void _createUpdateOperation(final int reason) {
UPDATE_OPERATIONS.put(reason, new ExtensionHost.Operation() {
@Override
public void run(IExtension extension) throws RemoteException {
// Note that this is protected from ANRs since it runs in the AsyncHandler thread.
// Also, since this is a 'oneway' call, when used with remote extensions, this call
// does not block.
extension.onUpdate(reason);
}
});
}
开发者ID:mridang,项目名称:dashbar,代码行数:12,代码来源:ExtensionHost.java
示例2: createConnection
import com.google.android.apps.dashclock.api.internal.IExtension; //导入依赖的package包/类
private Connection createConnection(final ComponentName cn, final boolean isReconnect) {
final Connection conn = new Connection();
conn.componentName = cn;
conn.contentObserver = new ContentObserver(mClientThreadHandler) {
@Override
public void onChange(boolean selfChange) {
execute(conn.componentName,
UPDATE_OPERATIONS.get(DashClockExtension.UPDATE_REASON_CONTENT_CHANGED));
}
};
conn.hostInterface = makeHostInterface(conn);
conn.serviceConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
conn.ready = true;
conn.binder = IExtension.Stub.asInterface(iBinder);
// Initialize the service
execute(conn, new Operation() {
@Override
public void run(IExtension extension) throws RemoteException {
// Note that this is protected from ANRs since it runs in the
// AsyncHandler thread. Also, since this is a 'oneway' call,
// when used with remote extensions, this call does not block.
extension.onInitialize(conn.hostInterface, isReconnect);
}
});
if (!isReconnect) {
execute(conn.componentName,
UPDATE_OPERATIONS.get(DashClockExtension.UPDATE_REASON_INITIAL));
}
// Execute operations that were deferred until the service was available.
// TODO: handle service disruptions that occur here
Iterator<Operation> it = conn.deferredOps.iterator();
while (it.hasNext()) {
if (conn.ready) {
execute(conn, it.next());
it.remove();
}
}
}
@Override
public void onServiceDisconnected(final ComponentName componentName) {
conn.serviceConnection = null;
conn.binder = null;
conn.ready = false;
mClientThreadHandler.post(new Runnable() {
@Override
public void run() {
mExtensionConnections.remove(componentName);
}
});
}
};
try {
if (!mContext.bindService(new Intent().setComponent(cn), conn.serviceConnection,
Context.BIND_AUTO_CREATE)) {
LOGE(TAG, "Error binding to extension " + cn.flattenToShortString());
return null;
}
} catch (SecurityException e) {
LOGE(TAG, "Error binding to extension " + cn.flattenToShortString(), e);
return null;
}
return conn;
}
开发者ID:JesusM,项目名称:DashClock,代码行数:72,代码来源:ExtensionHost.java
示例3: run
import com.google.android.apps.dashclock.api.internal.IExtension; //导入依赖的package包/类
void run(IExtension extension) throws RemoteException;
开发者ID:mridang,项目名称:dashbar,代码行数:2,代码来源:ExtensionHost.java
注:本文中的com.google.android.apps.dashclock.api.internal.IExtension类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论