【发布时间】:2013-09-18 18:42:47
【问题描述】:
我有一个 SMSReceiver 类,它扩展了 BroadcastReceiver。收到短信后,我会创建通知。当它被点击时,我开始我自己的(不是主要的!)活动 - DialogActivity:
Intent mIntent = new Intent(context, DialogActivity.class);
...
mIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent mPendingIntent =
PendingIntent.getActivity(
context,
mNotificationId,
mIntent,
0
);
mBuilder.setContentIntent(mPendingIntent);
但是,它始终显示在主要活动的顶部。因此,如果我从DialogActivity 调用finish,则会显示主要活动。我该如何避免呢?
DialogActivity 类如下所示:
public class DialogActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dialog); // android:theme="@android:style/Theme.Dialog"
Button dialogBtnNo = (Button) findViewById(R.id.dialog_btn_no);
dialogBtnNo.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
finish(); // close this activity
}
...
和清单文件:
<activity
android:name="my.package.DialogActivity"
android:label="@string/title_activity_dialog"
android:theme="@android:style/Theme.Dialog"
android:configChanges="keyboardHidden|orientation">
</activity>
【问题讨论】:
-
贴出DialogActivity.class的全部代码
-
@Metalhead1247,已添加。
-
将上下文更改为 getapplicationbasecontext()
-
我不确定这是否可行,但您是否尝试过添加
FlagFLAG_ACTIVITY_CLEAR_TOP? -
不,
Context是正确的
标签: android android-intent android-pendingintent android-broadcast