public void run() { SystemClock.sleep(7000); result.finish(); } }).start();
public void finish() { try { build().finish(); } catch (Throwable e) { e.printStackTrace(); } } }
private void handleReceiver(ReceiverData data) { BroadcastReceiver.PendingResult result = data.resultData.build(); try { if (!isBound()) { bindApplication(data.component.getPackageName(), data.processName); } Context context = mInitialApplication.getBaseContext(); Context receiverContext = ContextImpl.getReceiverRestrictedContext.call(context); String className = data.component.getClassName(); BroadcastReceiver receiver = (BroadcastReceiver) context.getClassLoader().loadClass(className).newInstance(); mirror.android.content.BroadcastReceiver.setPendingResult.call(receiver, result); data.intent.setExtrasClassLoader(context.getClassLoader()); if (data.intent.getComponent() == null) { data.intent.setComponent(data.component); } receiver.onReceive(receiverContext, data.intent); if (mirror.android.content.BroadcastReceiver.getPendingResult.call(receiver) != null) { result.finish(); } } catch (Exception e) { // must be this for misjudge of anti-virus!! throw new RuntimeException(String.format("Unable to start receiver: %s ", data.component), e); } VActivityManager.get().broadcastFinish(data.resultData); }
public void run() { for (int appWidgetId: appWidgetIds) { // Set up the intent that starts the Earthquake // Remote Views Service, which will supply the views // shown in the List View. Intent intent = new Intent(context, EarthquakeRemoteViewsService.class); // Add the app widget ID to the intent extras. intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); // Instantiate the RemoteViews object for the App Widget layout. RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.quake_collection_widget); // Set up the RemoteViews object to use a RemoteViews adapter. views.setRemoteAdapter(R.id.widget_list_view, intent); // The empty view is displayed when the collection has no items. views.setEmptyView(R.id.widget_list_view, R.id.widget_empty_text); // Notify the App Widget Manager to update the widget using // the modified remote view. appWidgetManager.updateAppWidget(appWidgetId, views); } if (pendingResult != null) pendingResult.finish(); } };
public void run() { Earthquake lastEarthquake = EarthquakeDatabaseAccessor.getInstance(context) .earthquakeDAO().getLatestEarthquake(); boolean lastEarthquakeExists = lastEarthquake != null; String lastMag = lastEarthquakeExists ? String.valueOf(lastEarthquake.getMagnitude()) : context.getString(R.string.widget_blank_magnitude); String details = lastEarthquakeExists ? lastEarthquake.getDetails() : context.getString(R.string.widget_blank_details); RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.quake_widget); views.setTextViewText(R.id.widget_magnitude, lastMag); views.setTextViewText(R.id.widget_details, details); // Create a Pending Intent that will open the main Activity. Intent intent = new Intent(context, EarthquakeMainActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); views.setOnClickPendingIntent(R.id.widget_magnitude, pendingIntent); views.setOnClickPendingIntent(R.id.widget_details, pendingIntent); // Update all the added widgets for (int appWidgetId : appWidgetIds) appWidgetManager.updateAppWidget(appWidgetId, views); pendingResult.finish(); } };
private void handleReceiver(ReceiverData data) { BroadcastReceiver.PendingResult result = data.resultData.build(); try { if (!isBound()) { bindApplication(data.component.getPackageName(), data.processName); } Context context = mInitialApplication.getBaseContext(); Context receiverContext = ContextImpl.getReceiverRestrictedContext.call(context); String className = data.component.getClassName(); BroadcastReceiver receiver = (BroadcastReceiver) context.getClassLoader().loadClass(className).newInstance(); mirror.android.content.BroadcastReceiver.setPendingResult.call(receiver, result); data.intent.setExtrasClassLoader(context.getClassLoader()); if (data.intent.getComponent() == null) { data.intent.setComponent(data.component); } receiver.onReceive(receiverContext, data.intent); if (mirror.android.content.BroadcastReceiver.getPendingResult.call(receiver) != null) { result.finish(); } } catch (Exception e) { e.printStackTrace(); throw new RuntimeException( "Unable to start receiver " + data.component + ": " + e.toString(), e); } VActivityManager.get().broadcastFinish(data.resultData); }
@Override public void onReceive(Context context, Intent intent) { if (mApp.isBooting()) { return; } if ((intent.getFlags() & FLAG_RECEIVER_REGISTERED_ONLY) != 0 || isInitialStickyBroadcast()) { return; } String privilegePkg = intent.getStringExtra("_VA_|_privilege_pkg_"); if (privilegePkg != null && !info.packageName.equals(privilegePkg)) { return; } PendingResult result = goAsync(); if (!mAMS.handleStaticBroadcast(appId, info, intent, new PendingResultData(result))) { result.finish(); } } }
@Override public void onReceive(Context context, Intent intent) { if (mApp.isBooting()) { return; } if ((intent.getFlags() & FLAG_RECEIVER_REGISTERED_ONLY) != 0 || isInitialStickyBroadcast()) { return; } String privilegePkg = intent.getStringExtra("_VA_|_privilege_pkg_"); if (privilegePkg != null && !info.packageName.equals(privilegePkg)) { return; } PendingResult result = goAsync(); if (!mAMS.handleStaticBroadcast(appId, info, intent, new PendingResultData(result))) { result.finish(); } } }
public void onReceive(Context context, Intent intent, AtomicBoolean abort) { this.abort = abort; onReceive(context, intent); // If the underlying receiver has called goAsync(), we should not finish the pending result yet - they'll do that // for us. if (receiver.getPendingResult() != null) { receiver.getPendingResult().finish(); } } }
public void onReceive(Context context, Intent intent, AtomicBoolean abort) { this.abort = abort; onReceive(context, intent); // If the underlying receiver has called goAsync(), we should not finish the pending result yet - they'll do that // for us. if (receiver.getPendingResult() != null) { receiver.getPendingResult().finish(); } } }
public void finish() { try { build().finish(); } catch (Throwable e) { e.printStackTrace(); } } }
public void finish() { try { build().finish(); } catch (Throwable e) { e.printStackTrace(); } } }
@Override protected void onPostExecute(Boolean success) { result.finish(); } }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
public void onReceive(Context context, Intent intent, AtomicBoolean abort) { this.abort = abort; onReceive(context, intent); // If the underlying receiver has called goAsync(), we should not finish the pending result yet - they'll do that // for us. if (receiver.getPendingResult() != null) { receiver.getPendingResult().finish(); } } }
public void onReceive(Context context, Intent intent, AtomicBoolean abort) { this.abort = abort; onReceive(context, intent); // If the underlying receiver has called goAsync(), we should not finish the pending result yet - they'll do that // for us. if (receiver.getPendingResult() != null) { receiver.getPendingResult().finish(); } } }
@Override public void onPostExecute(Void result) { pendingResult.finish(); } }
@Override public void run() { updateInInternalDatabase(context, intent, resultCode); onMessageStatusUpdated(context, intent, resultCode); result.finish(); } }).start();
@Test public void sendOrderedBroadcast_shouldExecuteSerially() { String action = "test"; AtomicReference<BroadcastReceiver.PendingResult> midResult = new AtomicReference<>(); IntentFilter lowFilter = new IntentFilter(action); lowFilter.setPriority(1); BroadcastReceiver lowReceiver = broadcastReceiver("Low"); contextWrapper.registerReceiver(lowReceiver, lowFilter); IntentFilter midFilter = new IntentFilter(action); midFilter.setPriority(2); AsyncReceiver midReceiver = new AsyncReceiver(midResult); contextWrapper.registerReceiver(midReceiver, midFilter); IntentFilter highFilter = new IntentFilter(action); highFilter.setPriority(3); BroadcastReceiver highReceiver = broadcastReceiver("High"); contextWrapper.registerReceiver(highReceiver, highFilter); contextWrapper.sendOrderedBroadcast(new Intent(action), null); assertThat(transcript).containsExactly("High notified of test", "Mid notified of test"); transcript.clear(); assertThat(midResult.get()).isNotNull(); midResult.get().finish(); Robolectric.flushForegroundThreadScheduler(); assertThat(transcript).containsExactly("Low notified of test"); }
@Override public void onReceive(Context context, Intent intent) { if (mApp.isBooting()) { return; } if ((intent.getFlags() & FLAG_RECEIVER_REGISTERED_ONLY) != 0 || isInitialStickyBroadcast()) { return; } String privilegePkg = intent.getStringExtra("_VA_|_privilege_pkg_"); if (privilegePkg != null && !info.packageName.equals(privilegePkg)) { return; } PendingResult result = goAsync(); if (!mAMS.handleStaticBroadcast(appId, info, intent, new PendingResultData(result))) { result.finish(); } } }
public void onReceive(Context context, Intent intent, AtomicBoolean abort) { this.abort = abort; onReceive(context, intent); // If the underlying receiver has called goAsync(), we should not finish the pending result yet - they'll do that // for us. if (receiver.getPendingResult() != null) { receiver.getPendingResult().finish(); } } }