3

電話の起動時にアプリケーションを自動的に起動したい。マニフェストファイルでBroadcastReceiverを宣言しました。

<receiver android:name=".Autostart">  
<intent-filter>  
    <action android:name="android.intent.action.BOOT_COMPLETED" />  
</intent-filter>  

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

レシーバー用のJavaファイルを作成しました。

Autostart.java

public class Autostart extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {  

    Intent pushIntent = new Intent(context, MushTouchActivity.class); 
    pushIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(pushIntent);
    }
}

}

しかし、電話の電源を入れてもアプリケーションが起動しません。誰かが私がここで欠けているものを教えてもらえますか?

4

3 に答える 3

5

次のようなifステートメントを試してください。

    if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){


        Intent i = new Intent(context, MushTouchActivity.class);
        i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

        context.startActivity(i);
    }
于 2012-06-01T16:17:40.183 に答える
2

Android 3.1以降を使用している場合:

アプリケーションを少なくとも1回は手動で開始したことを確認してください(たとえば、アプリドロワーからアプリケーションを開くことによって)。それ以外の場合、アプリはシステムによって停止済みとしてマークされます。

アプリケーションは、最初にインストールされたときは停止状態ですが、まだ起動されていません

停止したアプリは、を含むブロードキャストインテントを受信しませんBOOT_COMPLETED

Android3.1を参照してください。プラットフォーム-詳細については、停止したアプリケーションの起動コントロールを参照してください。

于 2012-06-01T16:49:30.847 に答える
0

最善の答えは、通知を表示し、その通知からアプリを起動して、通知でそのアクティビティの保留中のインテントを使用するようにユーザーに依頼することです。

于 2019-03-15T09:09:32.273 に答える