2017-01-15 5 views
0

私はアプリを開発しています。このアプリは何らかのイベントが発生したときにユーザに明確な指示を与える必要があります。Android:電話がスリープしているときのアクティビティの開始方法、Viber incommingコールアクティビティと同様

私が今までにできることは、通知領域に通知を出すことだけです。しかし、電話が着信中に鳴っているときの動作に似た、より目立つ通知をする必要があります。

私が理解できるように、アンドロイドがアプリに通知することを許可しているのは、アプリがユーザを妨害しないようにするためです。しかし、私が開発しているこのアプリは、ユーザーの仕事で重要な役割を果たしているので、そのような強力な通知を与えることは不適切だとは思わない。

Viberのようなアプリは、デバイスがスリープしているときでも、着信電話と同様のアクティビティを開始できるため、実行可能にする必要があることはわかっています。

これを行う方法を知っている人はいますか?

答えて

1

スティッキサービスを追加するだけで問題は解決されました。サービスを追加すると、ユーザーがアプリを終了して最近のアプリリストから削除されたときに、プロセスが強制終了されなくなりました。

サービスがあるため、UIが表示されていなくてもアプリプロセスが実行されています。この状態で、GCMサービスからアクティビティが表示されると、アクティビティが表示されます。

1

、通知を示すののCustomAction .Insteadを言う放送を投げると意図フィルタを介してのCustomActionを追加する放送受信機を登録し、それにカスタムアクションを追加します。 今放送リスナーのonReceive方法では、(intent.getAction.equals(「のCustomAction」))場合 をチェックしていないフォーマットされた答えをIntent i = new Intent(context, YourActivity); context.startActivity(i);

申し訳ありませんが、私が運転しています、より明確化するために、後でそれを更新します。スティッキーサービスで

更新

登録する放送受信機。そのサービスは、殺された場合に自動的に開始され、ブロードキャストレジスタを再度登録することができます。 onDestroy()サービス方法と、YourActivityで放送受信機を登録解除することを忘れないでください。

+0

回答ありがとうございました。これは期待通りに機能しました。ブロードキャストレシーバで作成された新しいアクティビティが表示されるが、GCMリスナーサービスで作成された新しいアクティビティ(以前に通知を示した場所)が、現在アプリが実行されていないときに表示されない理由を説明してください。 –

+0

私はそれについてはわかりませんが、アプリケーションが殺された可能性があります。その場合、アクティビティを起動する際に、Activity_Launcherカテゴリをインテントに設定する必要があります。 –

0

Vinayが言及したようにブローキャストをトリガーすることができます。それでも動作しない場合は、ウェイクロックを使用してみてください。これらのウェイクロックは、デバイスがスリープモードになっているときにデバイスをスリープ状態にするのを助けます。それは力の目覚ましのように動作し、起床ロックを呼び出した後、あなたはあなたの行動を実行することができます。

希望しました。

ありがとうございました。

関連する問題