0

こんにちは、Android アプリのバックグラウンド プロセスで、クラスのインテントを呼び出す必要があります。しかし、タスク マネージャーに移動してアプリを一時停止すると、アクティビティが開かれます。この問題の解決を手伝ってください。

これが私のコードです:

intent = new Intent(Service.this,PushNotification.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);

フラグ(new_Task)を設定しなかった場合、アプリは強制的に閉じられ、例外が発生しました。これがlogcatの私のエラーです:

01-16 16:23:44.139: E/AndroidRuntime(18251): FATAL EXCEPTION: main
01-16 16:23:44.139: E/AndroidRuntime(18251): android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity  context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
01-16 16:23:44.139: E/AndroidRuntime(18251):    at android.app.ContextImpl.startActivity(ContextImpl.java:847)
01-16 16:23:44.139: E/AndroidRuntime(18251):    at android.content.ContextWrapper.startActivity(ContextWrapper.java:276)
01-16 16:23:44.139: E/AndroidRuntime(18251):    at com.app.Service.MobilyzerService$ServerTask.onPostExecute(MobilyzerService.java:359)
01-16 16:23:44.139: E/AndroidRuntime(18251):    at com.app.Service.MobilyzerService$ServerTask.onPostExecute(MobilyzerService.java:1)
01-16 16:23:44.139: E/AndroidRuntime(18251):    at android.os.AsyncTask.finish(AsyncTask.java:602)
01-16 16:23:44.139: E/AndroidRuntime(18251):    at android.os.AsyncTask.access$600(AsyncTask.java:156)
01-16 16:23:44.139: E/AndroidRuntime(18251):    at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:615)
01-16 16:23:44.139: E/AndroidRuntime(18251):    at android.os.Handler.dispatchMessage(Handler.java:99)
01-16 16:23:44.139: E/AndroidRuntime(18251):    at android.os.Looper.loop(Looper.java:137)
01-16 16:23:44.139: E/AndroidRuntime(18251):    at android.app.ActivityThread.main(ActivityThread.java:4441)
01-16 16:23:44.139: E/AndroidRuntime(18251):    at java.lang.reflect.Method.invokeNative(Native Method)
01-16 16:23:44.139: E/AndroidRuntime(18251):    at java.lang.reflect.Method.invoke(Method.java:511)
01-16 16:23:44.139: E/AndroidRuntime(18251):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
01-16 16:23:44.139: E/AndroidRuntime(18251):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
01-16 16:23:44.139: E/AndroidRuntime(18251):    at dalvik.system.NativeStart.main(Native Method)

私を案内してください。

4

3 に答える 3

1

私の解決策は

intent = new Intent(Service.this,PushNotification.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity( intent );
于 2013-01-16T10:30:44.707 に答える
1

インテントを呼び出したい場合は、

インテントを次のように呼び出しますthis.startService(intent);

(また)

アクティビティからインテントを呼び出したい場合は、次のように呼び出します startActivity(intent);

于 2013-01-16T10:25:49.340 に答える
0

Activityusing インテントを開くには、使用してくださいstartActivity

コードは

Intent inda = new Intent(getApplicationContext(),
NewDutyActivity.class);
inda.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
inda.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(inda);

serviceこのエラーが発生しているUIコンポーネントではない何かからUIコンポーネントを開始しようとしているときに、アクティビティを開こうとしていると思います。

そのためnew task flag、意図を追加する必要があります。

于 2013-01-16T10:30:14.573 に答える