1

ユーザーがアプリを開くたびに、ホーム/デスクトップアイコンをタップして検出したい。それを行うための簡単な方法はないようです。いくつかの回避策が見つかりましたが、本当に信頼できるものはないようです。

たとえば、アプリケーションオブジェクトを拡張し、メソッド「onCreate()」を使用しますが、ユーザーがアプリのアイコンをタップしたときに常に呼び出されるとは限らないため、これは必要ではありません(バックグラウンドから取得するだけで、起動しても必ずしも再作成されるとは限りません)アプリケーション)、および実行中にアプリケーションが破棄および再作成される場合もあります。次に、Application.onCreate()も呼び出されます。

BroadcastReceiverとインテントフラグのチェックを含むいくつかのアプローチもありますが、すべてが完全に信頼できるわけではないようです。

ユーザーがアプリを開いたときにGoogleAnalyticsで追跡したいので、これが必要です。

ありがとう

4

2 に答える 2

0

アプリケーションが通常の方法で起動されるときはいつでも[ユーザーがホームランチャーのアイコンをタップした場合]、メインのアクティビティ

<activity android:name=".xyz" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>

が定義されているため、このアプリケーションでは必ずonCreateメソッドが呼び出されます。ここに Google アナリティクスのトラッキング コードを配置できます。

他の方法では、ブロードキャスト レシーバーのように、どのアクティビティが呼び出されるか、およびそれがアプリケーションの開始であるかどうかに大きく依存します。そこにもonReceiveメソッドを入れることができます

私が感じる限り、Android にはアプリを起動する明確な方法があり、常に信頼できます。Android のライフサイクルだけは少しトリッキーです。

于 2012-08-22T11:50:53.113 に答える
0

「Androidアプリのライフサイクル」を調べてみてください。

ただしonResume、アクティビティを開始するたびに起動されます

Else try :onStartアプリケーションが「バックグラウンド」に送信されるたびに呼び出されます。開発者ドキュメントには実際にそう記載されています。

于 2012-08-22T11:50:12.853 に答える