java.lang.ClassCastException при запуске нового `runnableThread` в классе` Service`
У меня есть приложение, содержитbroadcastReceiver
который слушает все новые полученные SMS. Если любое новое SMS получило этоBroadcastReceiver
начинает фонService
который запускает GPS и возвращает координаты, для получения этой координаты необходим новый поток, в классе Service нетgetApplicationContext()
поэтому я использовал getContentBase () для запуска нового потока, это код
((Activity) getBaseContext ()). RunOnUiThread (new Runnable () {
((Activity)getBaseContext()).runOnUiThread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationListener locationListener = new MyLocationListener();
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER, 5000, 10,
locationListener);
}
}
и я получаю это исключение
E/AndroidRuntime(24700): java.lang.ClassCastException: android.app.ContextImpl cannot be cast to android.app.Activity
это как получатель, определенный в манифесте
<receiver
android:name=".BroadCastReceiver"
android:exported="true" >
<intent-filter android:priority="1000" >
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
и вот как служба началась вBroadcastReceiver
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
context.startService(new Intent(con,
MyService.class));
}
и исключение на этой линии
((Activity)getBaseContext()).runOnUiThread(new Runnable()
Я много искал в стеке, а также в Google, ни один из ответов не решил мою проблему и попытался отправить контекст изBroadCastReceiver
кService
класс, опять же было то же исключение, любая помощь ??