从待处理的意图启动时的活动生命周期

时间:2017-03-04 09:47:14

标签: android android-intent android-pendingintent

活动A在其B中启动活动startActivityForResult()(使用onResume())。

B依次显示对话框D。当用户在对话框中选择一个选项时,B会将结果返回给A,后者会处理结果并完成。

当从应用中的其他活动触发A时,所有这一切都正常。但是,如果A作为通知中的待处理意图(从服务触发)启动,则会显示对话框D。但是,即使在用户可以在对话框中和onStop()完成之前选择任何内容之前,A上也会立即调用B。因此,对话框结果永远不会传递回A

配置根据此处的文档Set up a special activity PendingIntent

AndroidManifest.xml

    <activity android:name=".A"
        android:launchMode="singleTask"
        android:taskAffinity=""
        android:excludeFromRecents="true"
        android:theme="@style/AppTheme.Transparent">
    </activity>

    <activity android:name=".B"
        android:excludeFromRecents="true"
        android:theme="@style/AppTheme.Transparent">
    </activity>

这是创建待处理意图和发送通知的方式。

    Intent authIntent = new Intent(context, A.class);
    authIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
    PendingIntent pendingAuthIntent =
            PendingIntent.getActivity(
                    context,
                    0,
                    authIntent,
                    PendingIntent.FLAG_UPDATE_CURRENT
            );

    builder.setContentIntent(pendingAuthIntent);
    NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
    nm.notify(NOTIFICATION_ID, builder.build());        

如何让A等待B完成。

0 个答案:

没有答案