0

さて、私のシンプルなウィジェットから、アプリの主な目的を開くボタンがあります。

Intent active = new Intent(context, Home.class);
        active.setClassName(Global.appclass, Global.appclass + Global.appEntryPoint); 
        active.putExtra("WidgetInput", mValue);

        PendingIntent actionPendingIntent = PendingIntent.getActivity(context,1, active, 0);
        remoteViews.setOnClickPendingIntent(R.id.btnWidgetValue, actionPendingIntent);
        appWidgetManager.updateAppWidget(thisWidget, remoteViews);

このインテントはシースルーであり、編集テキストボックスと[OK]ボタンのみがあります。誰かが[OK]ボタンを押すと、ウィジェットに戻ります。

ただし、ユーザーがウィジェットのボタンを押す前にアプリケーションが実行されていた場合は、シースルーインテントがメインアプリケーションの上に読み込まれるため、バックグラウンドでメインアプリケーション画面を確認できます。ロードしているインテント以外のすべてのインテントを閉じるにはどうすればよいですか。

私がこれを大丈夫説明したことを願っています。

目的はホーム画面ウィジェットの入力ボックスを提供することですが、ホーム画面の真上にあるように見え、メインアプリがバックグラウンドで実行されていない場合は完璧に機能します。

前もって感謝します。

4

1 に答える 1

0

わかりました。私がする必要があるのは、インテントにこれら両方のフラグを使用することだけでした。これにより、新しいインテントが実行されている唯一のインテントになります。

active.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP| Intent.FLAG_ACTIVITY_SINGLE_TOP);
于 2012-08-24T07:33:40.743 に答える