2013-09-14 4 views
-1

Этот код в службу я пытаюсь отправить данные из службы в деятельности, но он не работает,Почему я не могу отправить данные из службы в действие?

общественного недействительными OnStart (Намерение Намерение, внутр startId) { // TODO Auto-генерироваться метод заглушки супер. onStart (намерение, startId); Toast.makeText (это, "onstart()", Toast.LENGTH_SHORT) .show();

String message = intent.getStringExtra("msg"); 
    int ID = intent.getExtras().getInt("id"); 
    Toast.makeText(getApplication(), message, Toast.LENGTH_LONG).show(); 
    NotificationManager notificationmanager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); 

    Intent notificationintent = new Intent(this, Details.class); 

    notificationintent.putExtra("ID", ID); 

    PendingIntent pendingintent = PendingIntent.getActivity(this,ID, notificationintent,0); 

    int icon = R.drawable.ic_launcher; 
    String tickerText = "you have a massege"; 
    long when = System.currentTimeMillis(); 
    Notification notification = new Notification(icon, tickerText, when); 

    String contentTitle = "Title"; 
    String contentText = message; 
    notification.setLatestEventInfo(this, contentTitle, contentText, pendingintent); 
    notification.defaults = notification.DEFAULT_SOUND; 

    notificationmanager.notify(ID, notification); 

Это активность

Intent i = new Intent(); 
int num = i.getExtras().getInt("ID"); 
number.setText(num); // number is textview 
+0

Возможно, это не новое намерение, а getIntent() – JRowan

+0

, если вы не показываете что-то 'i' не имеет каких-либо дополнительных функций в этой точке. – ChiefTwoPencils

+0

Прочтите код @Vishal Pawale. Есть твоя проблема. И кстати. Я думаю, что ваш код выйдет из строя, потому что вы передаете число в методе setText на вашем представлении. Он должен быть «number.setText (num +« »); – rootpanthera

ответ

2

Изменение кода активности, как это -

int num = getIntent().getIntExtra("ID", 0); 

    number.setText(String.valueOf(num)); // number is textview 
+0

Вы можете отметить этот ответ как принятый, если он решает проблему. –

+0

+1. Он создает новое намерение, вместо этого он уже существует. – rootpanthera

+0

не работает :(и текст может принимать значение int – user2746864

0

Я не это, вы можете напрямую общаться с услугой к деятельности. Помните, что служба может работать независимо от любой активности. Вы можете связываться с активностью с услугой через вызовы startService, передавая намерение.

Для того, чтобы общаться назад к деятельности деятельность должна связываться со службой: http://developer.android.com/guide/components/bound-services.html

Другим вариантом является услуга может отправить радиопередачу и активность может получить сообщения через обработчик передается в эфир получатель.

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