0

私は現在 Android アプリに取り組んでいますが、ほとんどの場合、それを使用するたびにエラーが発生します。ほとんどの場合、アプリがクラッシュすることはありませんが、それでもこのエラーが表示されるのはイライラします。確認したつもりだったのですが、間違っているかもしれません。助けてくれてありがとう!関連するコードは以下です。if(ステートメントの外側の行が をスローしているため、関連性がありNullPointerExceptionます。)

 Activity activity;     

 if(activity == null)
 {
   activity = new Activity();
 }

 Intent intent = new Intent(activity, Service.class);
4

3 に答える 3

3

通常、Activity クラスをこの方法でインスタンス化することはありません。Android Activity クラスに関するドキュメントは、次の場所で参照してください。

http://developer.android.com/reference/android/app/Activity.html

于 2012-05-18T22:34:26.073 に答える
0

以前のpostetのように、コンストラクターを呼び出すよりも、アクティビティに対して開始することが多くあります。おそらく、通常提供されるアクティビティ情報の一部を取得しようとしているインテントコンストラクタの奥深くでnullポインタ例外が発生します。

本当にサービスを作成したい場合は、ここにサービスを開始するためのリンクがありますが、記事全体と、おそらくアクティビティライフサイクルリソースのいくつかを実際に読む必要があります。

http://developer.android.com/guide/topics/fundamentals/services.html#StartingAService

于 2012-05-18T23:16:11.950 に答える
0

周囲のコードをもう少し投稿する必要がありますが、問題は new を作成Intentするには有効なContext. 通常、 (またはまたは) クラスIntent内にを作成するため、次のようなことができます。ActivityServiceBroadcastReceiver

Intent intent = new Intent(this, Service.class);

場合によっては、それを別の場所で作成してその valid を渡すこともありますが、コンストラクターを直接呼び出して をContext作成することはほとんどありません。Activity便利にするために必要な初期化は他にもたくさんあります。

于 2012-05-18T22:34:47.563 に答える