0

Android OS の起動時に、「MainActivity」という名前のメイン アクティビティ (唯一のアクティビティ) を起動しようとしています。アプリは内部ストレージにインストールされていますが、残念ながら、アプリ(アプリの名前) が停止しましたと表示されます。以下のようにブート受信コードを使用しています

.java ファイルの MainActivity コード

public class BootUpReceiver extends BroadcastReceiver
{

    @Override
    public void onReceive(Context context, Intent intent) {
            Intent i = new Intent(context, MainActivity.class);  
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(i);  
    }
}

AndroidManifest.xml

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

      <receiver android:enabled="true" android:name=".BootUpReceiver"
    android:permission="android.permission.RECEIVE_BOOT_COMPLETED">

    <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
     </receiver>
4

2 に答える 2

0

最後に、ここで立ち往生している誰かのために、しばらく検索した後、正しいことをしました。あなたがしなければならないことは、onReceive関数を別のパッケージに登録することです.Logcatでエラーが発生していたのは、MainActivityクラスとそのパッケージにコードを配置したときにClassnotfoundでした. onReceive 関数を新しいパッケージに変更するとすぐに、アプリケーションは問題なく動作しました。

于 2013-03-11T10:51:21.163 に答える
-1

これを試して:

public class BootUpReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if(action.equalsIgnoreCase("android.intent.action.BOOT_COMPLETED")) {
            Intent i = new Intent(context, MainActivity.class);  
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(i);
        }  
    }
}

https://stackoverflow.com/a/11079306/6237295

于 2016-04-21T19:52:24.010 に答える