WebViewは、UIコンポーネントであるため、アクティビティはアクティビティ内にのみ存在できます。この問題を解決する最善の方法は、javascriptがサービス自体に行っている通信をオフロードすることです。これは単にアンドロイドの仕組みです。唯一の他の解決策は、あなたのjavascript/serverコミュニケーションをフォールトトレラントにして、いつでも接続が失われても耐えられるようにすることです。これを行う方法については、RESTモデルを参照してください。アンドロイドでRESTを使用することについてもっと詳しく知りたい場合は、video from Google IOをお勧めします。今日まで、私のお気に入りの一つです。
アクティビティを開始するためにサーバーから信号を送信する限り、これはある程度可能性があります。あなたは、デバイスを聞いている何かを持っている必要があります、おそらくサービス。あなたはあなたのサービスに長時間の投票を行い、そのためにただ待って応答を待つことができます。サーバからの応答が得られたら、それは次に行うことができる
Context.startActivity(intent)
ここで、インテントは開始するアクティビティを指定する明示的なインテントです。つまり、リソースが不足している場合でもサービスを停止することができます。その上、インターネット接続はいつでも失われる可能性があります(これらは携帯電話であり、人々はしばしばインターネット接続を持たない場所で携帯電話を利用します)。
結論として、デバイスは接続性に関して100%信頼できるとは考えられていません。最もスマートなことは、アプリケーションの仕様を変更してフォールトトレランスを強化することです。
音が鈍いかもしれませんが、「これをやってはいけません。これまでこれをやってはいけません。より建設的に、私はあなたが正しいことをするならば、あなたはあなたのものをバックグラウンドに押し込み、それを使ってユーザーを悩ますことはないと言いたいと思います。覚えておいて、KISS、それは軍隊のバンドだけではありません。それは美しい哲学です。それは単純な愚かなままにしておきます。あなたはこのvideoを見てみたいと思うかもしれませんが、それは私のお気に入りの一つです。それは役に立ちましたか?
OK、それは意味があります。私のアプリを正面に持ってくる問題を少し解明できますか? – TomBomb
私の返答を編集して、あなたの質問にさらに答えます。 –
ありがとうKurtis、これは大きな助けです。私は、活動/サービスが常に生きていることに全面的に頼っていないように努力しています。 私は上記のようにアクティビティを開始していますが、私の問題は、インテントが開始された後、再度フォーカスを得るためにアプリが必要になることです。私がstartActivity()を呼び出すときにユーザーが別のアプリケーションにいる場合、アプリケーションはバックグラウンドのままです。何かご意見は? – TomBomb