3

phonegapとmobilejqueryを使用してアプリを開発しています。

私のアプリにはバックグラウンドで実行されているポイントがあり、jsからイベントがトリガーされた場合は、アプリをフォアグラウンドにしたいと思います。

アプリをバックグラウンドからフォアグラウンドにするにはどうすればよいですか。次の属性を持つ単一のアクティビティがあります。

android:configChanges="orientation|keyboardHidden|screenLayout"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="adjustPan" 
        android:launchMode="singleTask"        
        android:label="@string/app_name"
        android:theme="@android:style/Theme.NoTitleBar"

私がフォアグラウンドでアプリを作成しようとしたのは:

    Intent intent = new Intent(mContext , MainActivity.class);
    intent.setAction(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_LAUNCHER);
    mContext.startActivity(intent);

mContext.startActivity(((Activity)mContext).getIntent());

(MainActivityは私のアプリの唯一のアクティビティです)が、機能していません。私はアンドロイド4.0を使用しています。

更新:Android 2.3では正常に動作しますが、Android4.0では動作しません

4

1 に答える 1

3

努力の結果、私は解決策を得ました...私はブロードキャストリスナーを実装しました。イベントを受信すると、ブロードキャストを送信し、ブロードキャストレシーバーでアプリを起動します。

Intent intent = new Intent(mContext, NotificationBroadcastReceiver.class);
        mContext.sendBroadcast(intent);

**レシーバー**:

public final class NotificationBroadcastReceiver  extends BroadcastReceiver {
      @Override
      public void onReceive(Context context, Intent intent) {
         System.out.println("Broadcast recieved");
         context.startActivity(new Intent(context,A.class).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
      }
}
于 2012-10-22T06:22:58.707 に答える