當我使用Toast消息時,它正在工作。現在當我用alert對話框替換它時,我得到了運行時異常。這裏是我的代碼:運行時異常 - 無法啓動接收器
public class ConnectionReciever extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = connectivityManager.getActiveNetworkInfo();
if (activeNetwork != null && activeNetwork.isConnected()) {
// Toast.makeText(context, "Internet Connection is Active",
// Toast.LENGTH_LONG).show();
AlertDialog successAlert=new AlertDialog.Builder(context).create();
successAlert.setMessage("Internet Connection is Active");
successAlert.show();
} else {
AlertDialog failureAlert=new AlertDialog.Builder(context).create();
failureAlert.setMessage("Internet Connection Timed Out....Please try again");
failureAlert.show();
}
}
}
它正確顯示吐司消息。現在,當我添加警報對話框時,我的應用程序崩潰。無法弄清原因。警報對話框中有任何錯誤嗎?
日誌條目貓:
06-11 06:02:02.010: W/dalvikvm(3823): threadid=1: thread exiting with uncaught exception (group=0xb2abbba8)
06-11 06:02:02.040: E/AndroidRuntime(3823): FATAL EXCEPTION: main
06-11 06:02:02.040: E/AndroidRuntime(3823): Process: com.example.finalassignment, PID: 3823
06-11 06:02:02.040: E/AndroidRuntime(3823): java.lang.RuntimeException: Unable to start receiver com.example.finalassignment.ConnectionReciever: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
06-11 06:02:02.040: E/AndroidRuntime(3823): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2426)
06-11 06:02:02.040: E/AndroidRuntime(3823): at android.app.ActivityThread.access$1700(ActivityThread.java:135)
06-11 06:02:02.040: E/AndroidRuntime(3823): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1272)
06-11 06:02:02.040: E/AndroidRuntime(3823): at android.os.Handler.dispatchMessage(Handler.java:102)
06-11 06:02:02.040: E/AndroidRuntime(3823): at android.os.Looper.loop(Looper.java:136)
06-11 06:02:02.040: E/AndroidRuntime(3823): at android.app.ActivityThread.main(ActivityThread.java:5017)
06-11 06:02:02.040: E/AndroidRuntime(3823): at java.lang.reflect.Method.invokeNative(Native Method)
06-11 06:02:02.040: E/AndroidRuntime(3823): at java.lang.reflect.Method.invoke(Method.java:515)
06-11 06:02:02.040: E/AndroidRuntime(3823): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
06-11 06:02:02.040: E/AndroidRuntime(3823): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
06-11 06:02:02.040: E/AndroidRuntime(3823): at dalvik.system.NativeStart.main(Native Method)
06-11 06:02:02.040: E/AndroidRuntime(3823): Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
06-11 06:02:02.040: E/AndroidRuntime(3823): at android.view.ViewRootImpl.setView(ViewRootImpl.java:540)
06-11 06:02:02.040: E/AndroidRuntime(3823): at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:259)
06-11 06:02:02.040: E/AndroidRuntime(3823): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
06-11 06:02:02.040: E/AndroidRuntime(3823): at android.app.Dialog.show(Dialog.java:286)
06-11 06:02:02.040: E/AndroidRuntime(3823): at com.example.finalassignment.ConnectionReciever.onReceive(ConnectionReciever.java:25)
06-11 06:02:02.040: E/AndroidRuntime(3823): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2419)
隨着應用環境下,你不能顯示dialog..you需要傳遞活動上下文顯示對話框.. –
我曾經背景下,這是從活動 – user3698989
我通過活動傳遞上下文是這樣的:Intent intent = new Intent(this,ConnectionReciever.class); \t \t sendBroadcast(intent); – user3698989