2017-09-11 6 views
0

デバイスの起動後に実行されるサービスを作成します。 だから私はandroid.permission.RECEIVE_BOOT_COMPLETED許可し、このような受信機を追加しました:BroadcastReceiver.onReceiveを修正するにはBOOT_COMPLETEDアクションを受信できませんか?

public class BootReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     Log.e("RECEIVER", "BOOT RECEIVED:" + intent.getAction()); 
    } 
} 

しかし、それは動作していない:

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

は最後に、私はBootReceiverクラスは次のようにBroadcastReceiverから延びて作成します。私は自分の携帯電話を再起動すると、私はこのようなlogcatから例外を参照してください。私は私のアプリをアンインストールすると

E/BootReceiver: Can't remove old update packages 
    java.lang.IllegalArgumentException: Unknown URL content://downloads/my_downloads 
at android.content.ContentResolver.delete(ContentResolver.java:1329) 
at android.provider.Downloads.removeAllDownloadsByPackage(Downloads.java:1089) 
at com.android.server.BootReceiver.removeOldUpdatePackages(BootReceiver.java:93) 
at com.android.server.BootReceiver.access$100(BootReceiver.java:42) 
at com.android.server.BootReceiver$1.run(BootReceiver.java:82) 

、この例外がまだ表示されます。

問題が何ですか?どうすれば修正できますか? ありがとうございます。

答えて

0

解決しました。

アプリをプライベートメモリにインストールすると正常に動作します。 もちろん、アプリケーションをインストールするとき、私はそれが標準でプライベートメモリにインストールされていることを知っています。

しかし、システムレシーバーを取得する場合は、コードを作成する必要があります。

関連する問題