PhoneGAPに基づいてアプリケーションをビルドして、電話をかけてから5秒後にアプリに戻る必要があります。PhoneGapから電話をかけた後、主なアクティビティにフォーカスを戻す
電話をかける部分は問題なく動作します。通話だけではなく、ダイヤルパッドとAndroidはオープンにするには、呼び出しを行うコードがcom.phonegap.api.Pluginに入れて、アプリを再起動するには
private void callNumber(String phoneNumber){
Uri calling = Uri.parse("tel:" + phoneNumber);
Intent callIntent = new Intent(Intent.ACTION_CALL, calling);
this.ctx.startActivity(callIntent);
}
のように見えている、イムはちょうどAsyncTask
を起動しますRestartTaskという名前のコールを発信します。このコードはプラグインの中にあるので、RestartTaskを起動するにはActivity.runOnUiThread
を使用する必要がありますが、それ以外に特別なものはありません。 RestartTaskで
は、唯一doInBackground
方法が実装されており、それがないすべては、5秒間スリープし、次の意図を実行している:
Intent restartIntent = new Intent(DialerPlugin.this.ctx.getBaseContext(), MainActivity.class);
restartIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
DialerPlugin.this.ctx.startActivity(restartIntent);
ここMainActivity
延びる、PhoneGapの由来するメインクラスでありますDroidGap
。
FLAG_ACTIVITY_CLEAR_TOPを設定し、FLAG_ACTIVITY_SINGLE_TOPは、人々がhereを言っていると活動が「再活性化」される場合hereは、設定する必要があり、活動は現在インスタンス化されたタスクが使用されていることを意味するの代わりに、新しいタスクを作成する正確に何であります新しいアクティビティー・インスタンスを作成するのではなく、アクティビティーが実行中の状態で再使用されます。インテントがOSによって提供された場合、「古い」アクティビティにはonNewIntent
がコールされます。
しかし、電話がアクティブになると何も起こりません。電話機の1台で電話を切るまで、意図はMainActivity
に届かないようです。奇妙な。
フラグを変更してFLAG_ACTIVITY_CLEAR_TOP
を含めると、アプリタスクまたはメインアクティビティが再開されます。しかし、これはPhoneGAPなので、どちらも私が望んでいないアプリの再起動に相当します。私はまた、Androidブートを別のタスクでアプリケーションのまったく新しいインスタンスにすることができます。これには焦点が当てられています。
しかし、Androidの主な活動にフォーカスを戻すことはできません。私は間違って何をしていますか?
ありがとうございます!