2009-09-23 18 views
13

मुझे सूचना से गतिविधि से डेटा भेजते समय समस्या हो रही है, मैं एक गतिविधि को एक गतिविधि पर क्लिक करता हूं लेकिन जब मैं बंडल के माध्यम से कुछ पैरामीटर जोड़ने की कोशिश करता हूं तो मैं पैरामीटर प्राप्त नहीं कर पा रहा हूं जिसे इरादा कहा जाता है, मैं How to send parameters from a notification-click to an activity?सेवा से डेटा को गतिविधि में भेजना

पर अभी भी कोई भाग्य नहीं है।

क्या कोई और समस्या किसी और के साथ हुई है?

अग्रिम धन्यवाद।

+0

आप सेवा से गतिविधि से डेटा कैसे भेजते हैं? –

उत्तर

18

आपको मेनिफेस्ट फ़ाइल को भी संशोधित करना होगा।

ये चर और तरीकों सेवा वर्ग के सदस्य हैं::

यहाँ उदाहरण है कि काम करता है

public static final String MOVEMENT_UPDATE = "com.client.gaitlink.AccelerationService.action.MOVEMENT_UPDATE"; 
    public static final String ACCELERATION_X = "com.client.gaitlink.AccelerationService.ACCELERATION_X"; 
    public static final String ACCELERATION_Y = "com.client.gaitlink.AccelerationService.ACCELERATION_Y"; 
    public static final String ACCELERATION_Z = "com.client.gaitlink.AccelerationService.ACCELERATION_Z"; 

private void announceAccelerationChanges()//this method sends broadcast messages 
    { 
     Intent intent = new Intent(MOVEMENT_UPDATE); 
     intent.putExtra(ACCELERATION_X, accelerationX); 
     intent.putExtra(ACCELERATION_Y, accelerationY); 
     intent.putExtra(ACCELERATION_Z, accelerationZ); 

     sendBroadcast(intent); 
    } 

और यह मुख्य गतिविधि से तरीके हैं:

आप रिसीवर रजिस्टर करने के लिए है ऑनर्यूम विधि में:

@Override 
    public void onResume() 
    { 

     IntentFilter movementFilter; 
     movementFilter = new IntentFilter(AccelerationService.MOVEMENT_UPDATE); 
     accelerationReceiver = new AccelerationServiceReceiver(); 
     registerReceiver(accelerationReceiver, movementFilter); 


     startAccelerationService(); 

     super.onResume(); 
    } 

    private void startAccelerationService() 
    { 
     startService(new Intent(this, AccelerationService.class)); 
    } 

    public class AccelerationServiceReceiver extends BroadcastReceiver 
    { 
     @Override 
     public void onReceive(Context context, Intent intent)//this method receives broadcast messages. Be sure to modify AndroidManifest.xml file in order to enable message receiving 
     { 
      accelerationX = intent.getDoubleExtra(AccelerationService.ACCELERATION_X, 0); 
      accelerationY = intent.getDoubleExtra(AccelerationService.ACCELERATION_Y, 0); 
      accelerationZ = intent.getDoubleExtra(AccelerationService.ACCELERATION_Z, 0); 

      announceSession(); 

      updateGUI(); 
     } 
    } 

यह टी नहीं है वह AndroidManifest.xml फ़ाइल का हिस्सा है जिसे प्रसारण संदेशों को प्राप्त करने के लिए सेट किया जाना है:

<activity android:name=".GaitLink" 
        android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 

       <action android:name="com.client.gaitlink.CommunicationService.action.ACTIVITY_STATUS_UPDATE" /> 

      </intent-filter> 
     </activity> 
+0

मैंने यह कोशिश की है लेकिन यह अपेक्षित काम नहीं कर रहा है .. मैंने लॉग स्टेटमेंट लिखे हैं लेकिन रेसीवीव विधि में प्रदर्शित नहीं हो रहा है। मैं क्या गलत कर सकता हूं जैसा कि मैंने कहा था! – Sam97305421562

+0

क्या सेवा ने संदेश प्रसारित किया है? क्या ब्रॉडकास्ट रिसीवर शुरू हो गया है और गतिविधि में चल रहा है? क्या आपने AndroidManifest.xml में इरादा फ़िल्टर जोड़ा है? –

+0

मैंने एंड्रॉइडManifest.xml फ़ाइल में ब्रॉडकास्ट रिसीवर जोड़ा है, हाँ सेवा प्रसारण करता है मैं कैसे पुष्टि कर सकता हूं कि ब्रॉडकास्ट रिसीवर शुरू हो गया है। – Sam97305421562

संबंधित मुद्दे