2014-09-12 3 views
1

Я использовал BroadcastReceiver, который сигнализирует каждые 10 секунд, и здесь, когда он вызывает тревогу, он запускает активность моего приложения или моего приложения. Как я могу создать этот запуск?Запуск от BroadcastReceiver

public void onReceive(Context context, Intent intent) { 
     generateNotification(context,"Hi how are you?"); 
     String action = intent.getAction(); 
     Intent yourintent = new Intent(null, OutPut.class); 
     yourintent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     context.startActivity(yourintent); 
     if (SOMEACTION.equals(action)) { 
      generateNotification(context,"Hi how are you?"); 
     } 
    } 

LogCat от OnClick начать активность:

by onclick it returns : 
09-12 12:00:54.750: E/AndroidRuntime(2251): FATAL EXCEPTION: main 
09-12 12:00:54.750: E/AndroidRuntime(2251): Process: com.manish.alarmmanager, PID: 2251 
09-12 12:00:54.750: E/AndroidRuntime(2251): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.manish.alarmmanager/com.manish.alarmmanager.OutPut}: java.lang.NullPointerException 
09-12 12:00:54.750: E/AndroidRuntime(2251):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2176) 
09-12 12:00:54.750: E/AndroidRuntime(2251):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226) 
09-12 12:00:54.750: E/AndroidRuntime(2251):  at android.app.ActivityThread.access$700(ActivityThread.java:135) 
09-12 12:00:54.750: E/AndroidRuntime(2251):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397) 
09-12 12:00:54.750: E/AndroidRuntime(2251):  at android.os.Handler.dispatchMessage(Handler.java:102) 
09-12 12:00:54.750: E/AndroidRuntime(2251):  at android.os.Looper.loop(Looper.java:137) 
09-12 12:00:54.750: E/AndroidRuntime(2251):  at android.app.ActivityThread.main(ActivityThread.java:4998) 
09-12 12:00:54.750: E/AndroidRuntime(2251):  at java.lang.reflect.Method.invokeNative(Native Method) 
09-12 12:00:54.750: E/AndroidRuntime(2251):  at java.lang.reflect.Method.invoke(Method.java:515) 
09-12 12:00:54.750: E/AndroidRuntime(2251):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777) 
09-12 12:00:54.750: E/AndroidRuntime(2251):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593) 
09-12 12:00:54.750: E/AndroidRuntime(2251):  at dalvik.system.NativeStart.main(Native Method) 
09-12 12:00:54.750: E/AndroidRuntime(2251): Caused by: java.lang.NullPointerException 
09-12 12:00:54.750: E/AndroidRuntime(2251):  at com.android.internal.os.LoggingPrintStream.println(LoggingPrintStream.java:298) 
09-12 12:00:54.750: E/AndroidRuntime(2251):  at com.manish.alarmmanager.OutPut.onCreate(OutPut.java:21) 
09-12 12:00:54.750: E/AndroidRuntime(2251):  at android.app.Activity.performCreate(Activity.java:5243) 
09-12 12:00:54.750: E/AndroidRuntime(2251):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
09-12 12:00:54.750: E/AndroidRuntime(2251):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2140) 
09-12 12:00:54.750: E/AndroidRuntime(2251):  ... 11 more 
+0

Пожалуйста, обратитесь к моему обновления и дайте мне знать, если он работает – Nabin

+0

Вы должны опубликовать исходный код вашего BroadcastReceiver для нас, чтобы помочь вам. – NitroG42

+0

Что находится на output.java строке 21? – Nabin

ответ

1

В стороне метод onRecieve() использовать

context.startActivity(yourintent); 

Здесь контекст передается в качестве аргумента в onRecieve() метода.

Вы должны создать yourintent как обычно

Но вы, возможно, придется установить флаг намерению следующим образом:

yourintent.setFlag(Intent.FLAG_ACTIVITY_NEW_TASK) 
+0

приложение останавливается !!! Intent yourintent = новый Intent (контекст, OutPut.class); context.startActivity (yourintent); OutPut.class -> это страница java (активность) – user2764027

+0

Здесь -><активность android: name = "com.manish.alarmmanager.OutPut" /> – user2764027

+0

Я использовал setFlag(), а logcat - в моем сообщении – user2764027

Смежные вопросы