2012-11-29 10 views
5

से परिणाम के लिए प्रारंभ गतिविधि मैं एक ऐप विकसित कर रहा हूं जो इस उद्देश्य को शुरू करने वाले ऐप में कुछ टेक्स्ट वापस कर दे।आईएमई

लेकिन ऐप शुरू करने वाला ऐप एक आईएमई/सॉफ्ट कीबोर्ड है। तो StartActivityForResult उपलब्ध नहीं है क्योंकि एक आईएमई एक सेवा है।

मैं इसे कैसे प्राप्त कर सकता हूं?

मैं अब तक क्या मिला:

कीबोर्ड:

final Intent intent = new Intent("com.example.helloworld.GETTEXT"); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK); 
intent.putExtra("keyboard", true); 
startActivity(intent); 

अन्य अनुप्रयोग:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Bundle extras = getIntent().getExtras(); 
    if (extras == null){     
     return; 
    } else { 
     finish(); 
    } 
} 

@Override 
public void finish() { 
    Intent data = new Intent(); 
    data.putExtra("test", "PASSED"); 
    setResult(RESULT_OK, data); 
    super.finish(); 
} 
+0

क्या आप इसके लिए प्रसारण रिसीवर का उपयोग नहीं कर सकते? –

उत्तर

0

आप एक ResultReceiver इस्तेमाल कर सकते हैं इस थिंक है के लिए।

ResultReceiver lReceiver = new KeyboardResultReceiver(aListener); 
final Intent intent = new Intent("com.example.helloworld.GETTEXT"); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK); 
intent.putExtra(EXTRA_RESULT_RECIEVER, lReceiver); 
intent.putExtra("keyboard", true); 
startActivity(intent); 

private static final class KeyboardResultReceiver extends ResultReceiver { 

    public FileUploadResultReceiver() { 
    } 

    @Override 
    protected void onReceiveResult(int aResultCode, Bundle aResultData) { 
      //Do your thing here you can also use the bundle for your data transmission 
    } 
} 
1

आप ResultReceiver का उपयोग कर सकते हैं। this example पर देखो, यह स्पष्ट रूप से स्पष्ट करता है कि यह कैसे काम करता है।

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