@Override public void onStop() { if (mWireables != null) { for (Wireable wireable : mWireables) { wireable.onStop(); } } }
private Wireable getWireable(Class<? extends Wireable> wireClass) { if (mWireables == null) { return null; } for (Wireable wireable : mWireables) { if (wireClass.equals(wireable.getClass())) { return wireable; } } return null; }
@SuppressWarnings("unchecked") public <T extends Wireable> T unwire(Class<T> wireClass) { assertObjectAndWorkerThread(wireClass); Context context = mImpl.getNotNullContext(); Wireable wireable = getWireable(wireClass); if (wireable != null) { if (context instanceof Application || context instanceof Service) { wireable.onStop(); wireable.onDestroy(); } mWireables.remove(wireable); } return (T) wireable; }
@Override public void onDestroy() { if (mWireables != null) { for (Wireable wireable : mWireables) { wireable.onDestroy(); } } synchronized (this) { if (mDelayedTasks != null && mDelayedTasks.size() > 0) { Handler handler = getMainHandlerNotNull(); Collection<Task> tasks = mDelayedTasks.values(); for (Task task : tasks) { handler.removeCallbacks(task); task.recycle(); } mDelayedTasks.clear(); } } }
public TinyBus wire(Wireable wireable) { assertObjectAndWorkerThread(wireable); Context context = mImpl.getNotNullContext(); if (mWireables == null) { mWireables = new ArrayList<Wireable>(); } mWireables.add(wireable); wireable.onCreate(this, context.getApplicationContext()); wireable.assertSuperOnCreateCalled(); if (context instanceof Application || context instanceof Service) { wireable.onStart(); } // TODO, what to do with already started activity? return this; }