BootReceiverシステムは、このコマンドを使用して、ブートアップした場合でも呼び出されることはありません:BroadcastReceiverがなぜ呼び出されないのですか?
adbのシェルAM放送-a android.intent.action.BOOT_COMPLETED -n com.android.canbedeleted.test/.BootReceiver
私はマニフェストに入れている
権限:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.android.canbedeleted.test">
<uses-sdk android:minSdkVersion="15" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<application android:label="test">
<receiver android:name="test.Droid.BootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
</application>
レシーバタグ私はそれを削除しようとしましたが、別のものは見えません。
[BroadcastReceiver]
[IntentFilter (new string[] { Intent.ActionBootCompleted }, Priority = (int)IntentFilterPriority.HighPriority)]
public class BootReceiver : BroadcastReceiver
{
public override void OnReceive(Context context, Intent intent)
{
System.Diagnostics.Debug.WriteLine ("*********************************** Broadcast Received *********************************");
Toast.MakeText(context, "Received intent!", ToastLength.Short).Show();
//Intent message = new Intent();
//message.AddFlags(ActivityFlags.NewTask);
//message.SetClass(context, typeof(KeyboardService));
//context.StartService(intent);
}
}
このようなcmdを入力しようとしても、以下のようなスタックトレースがあります。 test.Droidはクラスの名前空間です。
adbのシェルAM放送-a android.intent.action.BOOT_COMPLETED -n com.android.canbedeleted.test/test.Droid.BootReceiver
のStackTrace
れるjava.lang .RuntimeException:受信者をインスタンス化することができませんtest.Droid.BootReceiver:java.lang.ClassNotFoundException: "test.Droid.BootReceiver"クラスが見つかりませんでした:DexPathList [[zipファイル "/data/app/com.android.canbedeleted .test-8.apk "]、nativeLibraryDirectories = [/ data/app-lib/com.android.canbedeleted.test-8、/ vendor/lib、/ system/lib]] ---> Java.Lang.ClassNotFoundException:パスに "test.Droid.BootReceiver"クラスが見つかりませんでした:DexPathList [[zipファイル "/data/app/com.android.canbedeleted.test-8クラスライブラリを見つけられませんでした。 "、" .apk "]、nativeLibraryDirectories = [/ data/app-lib/com.android.canbedeleted.test-8、/ vendor/lib、/ system/lib]] java.lang.ClassNotFoundException: DexPathList [[zipファイル "/data/app/com.android.canbedeleted.test-8.apk"],nativeLibraryDirectories=[/data/app-lib/com.android.canbedeleted]をクリックします。at at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:67) at at java.lang.ClassLoader.loadClass(ClassLoader.java:497) (英語の場合は、test-8、/ vendor/lib、/ system/lib] at android.app.ActivityThread.handleReceiver(ActivityThread.java:2513)の から(英語)のjava.lang.ClassLoader.loadClass(ClassLoader.java:457)にあります。 android.app.ActivityThread.ActivityThreadでの3210 at $ 1800(ActivityThread.java:161)とandroid.os.Handler.dispatchMessage(Handler.AccessThread.access)の のatとandroid.app.ActivityThread $ H.handleMessage(ActivityThread.java:1341)の のところで。 java:102) atとandroid.os.Looper.loop(Looper.java:157) atからandroid.app.ActivityThread.main(ActivityThread.java:5356) at at java.lang.reflect.Method.invokeNative (ネイティブメソッド) at at java.lang.reflect.Mava.subs .android.internal.os.ZygoteInit.main(ZygoteInit.java:1081) at at dalvik.system.NativeStart.main(ネイティブメソッド) ---内部例外stの終了ack trace ---at java.lang.RuntimeException:レシーバをインスタンス化できません.Droid.BootReceiver:java.lang.ClassNotFoundException:パス上に "test.Droid.BootReceiver"クラスが見つかりませんでした:DexPathList [[zip file " /data/app/com.android.canbedeleted.test-8.apk"],nativeLibraryDirectories=[/data/app-lib/com.android.canbedeleted.test-8、/ vendor/lib、/ system/lib]] android.app.ActivityThread.handleReceiver(ActivityThread)の から。java:2518) atからandroid.app.ActivityThread.access $ 1800(ActivityThread.java:161) atからandroid.app.ActivityThread $ H.handleMessage(ActivityThread.java:1341) atとandroid.os.Handlerで。 android.os.Looper.loop(Looper.java:157)の からのディスパッチメッセージ(Handler.java:102)at android.app.ActivityThread.main(ActivityThread.java:5356) at at java.lang.reflect .Method.invokeNative(ネイティブメソッド) at at java.lang.reflect.Method.invoke(Method.java:515) at at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1265) at at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081) at at dalvik.system.NativeStart.main(ネイティブメソッド) at原因:java.lang.ClassNotFoundException:パス上に "test.Droid.BootReceiver"クラスが見つかりませんでした:DexPathList [[zipファイル "/data/app/com.android.canbedeleted.test-8.apk"] 、nativeLibraryDirectories = [/ data/app-lib/com.android.canbedeleted.test-8、/ vendor/lib、/ system/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:67) atClassLoader.loadClass(ClassLoader.java:497) at at java.lang.ClassLoader.loadClass(ClassLoader.java:457) atのandroid.app.ActivityThread.handleReceiver(ActivityThread.java:2513) at 10 more
http://stackoverflow.com/questions/39713862/xamarin-form-android-doesnt-received-the-broadcast-after-reboot/39714163#39714163 – SushiHangover
私は決してアプリケーションを閉じることはありません。私は、画面上にアクティビティを表示することさえできます。 – LittleFunny
あなたの* generated *マニフェストと、実際に含まれているクラス名を見てください。 – SushiHangover