SMSReceiver
を拡張するクラスがありますBroadcastReceiver
。SMS を受信したら、通知を作成します。クリックすると、自分の (メインではない) アクティビティを開始します - 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);
ただし、常にメイン アクティビティの上に表示されます。したがって、finish
から呼び出すとDialogActivity
、メイン アクティビティが表示されます。どうすればそれを回避できますか?
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>