私はバックグラウンドスレッドで10秒間隔でGPSの位置を監視し、いくつかの基準でテストするアプリケーションを構築しています。テストが成功すると、ブロードキャストレシーバにメッセージが送信されます。受信側の次のコードはバックグラウンドスレッドから緯度と経度を取得し、トーストで結果を表示するだけでうまく動作します。私は別のアクティビティを開始するための呼び出しで乾杯を交換する場合は、次のようブロードキャストレシーバーから別のアクティビティを呼び出す
package com.barney.gpstracking;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;
public class PosReceiver extends BroadcastReceiver {
double lat, lon;
String slat, slon;
@Override
public void onReceive(Context context, Intent intent) {
Bundle params = intent.getExtras();
if (params != null) {
lat = params.getDouble("lati");
slat = String.valueOf(lat);
lon = params.getDouble("long");
slon = String.valueOf(lon);
}
Toast.makeText(context, "Position is:" + lat + " " + lon, Toast.LENGTH_LONG).show();
}
}
しかし、:
lon = params.getDouble("long");
slon = String.valueOf(lon);
}
Intent goPop=new Intent(context,PopUpActivity.class);
context.startActivity(goPop);
}
}
をそれはコンパイルし、私のデバイス上で[OK]をインストールしますが、私はすぐに実行時エラーを取得しますそれは放送を受信しようとする。他の場所から呼び出すと、私が呼び出そうとしているPopUpActivityは完全に機能します(たとえば、メインアクティビティから)。したがって、上記のgoPopの意図は間違っていると思います。私は同様の質問に答えてアドバイスを見てきましたが、私は問題を理解することはできません。誰も私を助けることができますか?
また、これは同じものであるかもしれないhttps://stackoverflow.com/questions/9137477/passing-data-from-broadcast-receiver-to-another-activity?rq=1 – Ivan86
logcatを投稿 –