2014-11-18 3 views
0

Я пытаюсь создать простую связь с деятельностью и сервисом. то после получения какой-либо помощи из документов я создаю эту службу для отправки данных из активности для обслуживания и передачи данных из службы в работу. но я получаю NullPointerException для ResultReceiverandroid NullPointerException для ResultReceiver в службе

Моей активности:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    resultReceiver = new MyResultReceiver(null); 

    txtview = (TextView) findViewById(R.id.txtview); 

    intent = new Intent(this, MyService.class); 
    intent.putExtra("receiver", resultReceiver); 
    startService(intent); 
} 

Моей службы (с ошибкой):

public class ToobaPayamakService extends Service{ 
    private Timer timer = new Timer(); 
    private MyTimerTask timerTask; 
    private ResultReceiver resultReceiver; 
    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 
     resultReceiver = intent.getParcelableExtra("mLastID"); 
     timerTask = new MyTimerTask(); 
     timer.scheduleAtFixedRate(timerTask, 1000, 1000); 
     return START_STICKY; 
    } 
    @Override 
    public IBinder onBind(Intent intent) { 
     return null; 
    } 
    @Override 
    public void onDestroy() { 
     super.onDestroy(); 
     timer.cancel(); 
     Bundle bundle = new Bundle(); 
     bundle.putString("end", "Timer Stopped...."); 
     resultReceiver.send(200, bundle); 
    } 
    class MyTimerTask extends TimerTask 
    { 
     public MyTimerTask() { 
      Bundle bundle = new Bundle(); 
      bundle.putString("start", "Timer Started...."); 
      resultReceiver.send(100, bundle); 
     } 
     @Override 
     public void run() { 
      SimpleDateFormat dateFormat = new SimpleDateFormat("s"); 
      resultReceiver.send(Integer.parseInt(dateFormat.format(System.currentTimeMillis())), null); 
     } 
    } 
} 

LogCat Результат:

Unable to start service [email protected] with Intent { cmp=com.sample/.myService(has extras) }: java.lang.NullPointerException 
    java.lang.RuntimeException: Unable to start service [email protected] with Intent { cmp=com.sample/.myService (has extras) }: java.lang.NullPointerException 

ошибка для этой линии:

resultReceiver.send(100, bundle); 
+0

Check: http://stackoverflow.com/questions/4510974/using-resultreceiver-in-android –

+0

ли вы когда-нибудь нашли то, что было причиной этой проблемы? –

+0

Ну, если вам нужен рабочий пример, вы можете посмотреть здесь: [link] (http://stackoverflow.com/questions/3197335/restful-api-service) –

ответ

1

Не уверен, если это будет вопрос, но:

intent.putExtra("receiver", resultReceiver); 

-------- 

resultReceiver = intent.getParcelableExtra("mLastID"); 

Ваши идентификационные строки не совпадают, что путь никогда не будет работать.

Надеется, что это помогает

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