0

の公開方法から活動を呼び出している間、私はインターネットをオン・オフされるたびに意図を放送受信放送受信機を書きました。私は、インターネットは、私は別のアクティビティを呼び出すようにしようとしているが、これはLogcatで発生する、NullPointer例外に結果されたコードでは、利用可能である時はいつでも私のサービスでのコードの一部を実行することにしたいです。 PlzをNullPointerExceptionがサービス

NetworkReceiver助ける:

public class NetworkReceiver extends BroadcastReceiver { // 
public static final String TAG = "NetworkReceiver"; 

@Override 
public void onReceive(Context context, Intent intent) { 
if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) { 
     NetworkInfo info = intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO); 
     String typeName = info.getTypeName(); 
     String subtypeName = info.getSubtypeName(); 
     boolean available = info.isAvailable(); 
     Log.e(TAG, "Network Type: " + typeName 
      + ", subtype: " + subtypeName 
      + ", available: " + available); 
     if(available) 
     { 

      MyService obj=new MyService(); 
      obj.update(); 

      //Log.i(TAG,"SERVICE CALLED"); 
     } 
     else 
      Log.i(TAG,"NET UNAVAILABLE"); 


} 
} 
} 

たMyService:

public class MyService extends Service { 
public void onCreate() { 
//some code 
} 
public int onStartCommand(Intent intent, int flags, int startId) { 
//some code 
} 
public void update(){ 
//some code 
Intent callIntent = new Intent(Intent.ACTION_CALL); 
callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
Log.i("TAG","before PACKAGE NAME SET"); 
callIntent.setClass(getBaseContext(),MyActivity.class); //Line 50 
startActivity(callIntent); 
} 
} 

Logcatトレース:

03-12 19:06:00.925: ERROR/AndroidRuntime(509): Uncaught handler: thread main exiting due to uncaught exception 
03-12 19:06:01.035: ERROR/AndroidRuntime(509): java.lang.RuntimeException: Unable to start receiver com.gooogle.omcsa.NetworkReceiver: java.lang.NullPointerException 
03-12 19:06:01.035: ERROR/AndroidRuntime(509):  at android.app.ActivityThread.handleReceiver(ActivityThread.java:2646) 
03-12 19:06:01.035: ERROR/AndroidRuntime(509):  at android.app.ActivityThread.access$3100(ActivityThread.java:119) 
03-12 19:06:01.035: ERROR/AndroidRuntime(509):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913) 
03-12 19:06:01.035: ERROR/AndroidRuntime(509):  at android.os.Handler.dispatchMessage(Handler.java:99) 
03-12 19:06:01.035: ERROR/AndroidRuntime(509):  at android.os.Looper.loop(Looper.java:123) 
03-12 19:06:01.035: ERROR/AndroidRuntime(509):  at android.app.ActivityThread.main(ActivityThread.java:4363) 
03-12 19:06:01.035: ERROR/AndroidRuntime(509):  at java.lang.reflect.Method.invokeNative(Native Method) 
03-12 19:06:01.035: ERROR/AndroidRuntime(509):  at java.lang.reflect.Method.invoke(Method.java:521) 
03-12 19:06:01.035: ERROR/AndroidRuntime(509):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
03-12 19:06:01.035: ERROR/AndroidRuntime(509):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
03-12 19:06:01.035: ERROR/AndroidRuntime(509):  at dalvik.system.NativeStart.main(Native Method) 
03-12 19:06:01.035: ERROR/AndroidRuntime(509): Caused by: java.lang.NullPointerException 
03-12 19:06:01.035: ERROR/AndroidRuntime(509):  at android.content.ComponentName.<init>(ComponentName.java:75) 
03-12 19:06:01.035: ERROR/AndroidRuntime(509):  at android.content.Intent.setClass(Intent.java:4688) 
03-12 19:06:01.035: ERROR/AndroidRuntime(509):  at com.gooogle.omcsa.MyService.update(MyService.java:50) 
03-12 19:06:01.035: ERROR/AndroidRuntime(509):  at com.gooogle.omcsa.NetworkReceiver.onReceive(NetworkReceiver.java:39) 
03-12 19:06:01.035: ERROR/AndroidRuntime(509):  at android.app.ActivityThread.handleReceiver(ActivityThread.java:2637) 
03-12 19:06:01.035: ERROR/AndroidRuntime(509):  ... 10 more 
03-12 19:06:01.125: ERROR/dalvikvm(509): Unable to open stack trace file '/data/anr/traces.txt': Permission denied 
03-12 19:06:02.865: ERROR/ActivityThread(52): Failed to find provider info for android.server.checkin 

答えて

0

試してみてください。

..... 
    Intent callIntent= new Intent(getBaseContext(), MyActivity.class); 
    callIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    callIntent.setAction(Intent.ACTION_CALL); 
    getApplication().startActivity(callIntent); 
..... 
+0

そのを参照してください。 obj.update();意図callIntent =新しいテント(getBaseContext()、MyActivity.class)でヌルポインタ例外を与える –

0

このようにしてみてください。また、あなたはあなたを指定する必要が

Intent myService = new Intent (context, MyService.class); 
context.startService (myService); 

:放送受信機で

Intent callIntent = new Intent(getBaseContext(), MyActivity.class); 
callIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
getApplication().startActivity(callIntent); 
+0

その。 obj.update(); –

0

:あなたはサービスを開始する必要がある場合、あなたはむしろそれをこのようにしてくださいサービス:AndroidManifest.xmlのサービス:

<application ...> 
    ... 
    <service android:name=".MyService"></service> 
    ... 
</application> 

このサービスでは、アクティビティdirectlサービスからのy。むしろ、通知をシステムステータスバーに表示する必要があります。ユーザーが望む場合、彼は活動を持って、それをクリックすることができます。詳細については、意図callIntent =新しいテント(getBaseContext()、MyActivity.class)でnullポインタ例外を与えるhttp://developer.android.com/guide/topics/ui/notifiers/notifications.html

関連する問題