सेवा से ओपन पारदर्शी गतिविधि और सेवा में ब्रॉडकास्ट रिसीवर का उपयोग करें। विस्तार से चरणों का पालन करें।
1. सेवा
से खोलें पारदर्शी गतिविधि
Intent i = new Intent(mContext, FloatingServiceSupportActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.putExtra("action", "SpeechRegnition");
mContext.startActivity(i);
// पारदर्शी गतिविधि उपयोग के लिए AndroidManifest.xml में इस कोड को
<activity
android:name=".FloatingServiceSupportActivity"
android:theme="@style/Theme.Transparent" />
2. सेवा में
BroadcastReceiver brOnActivityResult = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// TODO:
}
};
BroadcastReceiver बनाएं
3. इस प्रसारण को सेवा के निर्माण पर पंजीकृत करें
IntentFilter brintent = new IntentFilter();
brintent.addAction("brActionFloatingServiceOnActivityResult");
mContext.registerReceiver(brOnActivityResult, brintent);
4। अपंजीकृत सेवा की OnDestroy में इस प्रसारण
mContext.unregisterReceiver(brOnActivityResult);
5. startActivityForResult का उपयोग करके गतिविधि में काम करो और गतिविधि के (FloatingServiceSupportActivity) से प्रसारण भेजें onActivityResult
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Intent i = new Intent();
i.setAction("brActionFloatingServiceOnActivityResult");
i.putExtra("action", "initTextToSpeech");
mActivity.sendBroadcast(i);
mActivity.finish();
}
स्रोत
2016-11-01 08:25:14
मुझे कोई कोशिश की है और मैं कभी नहीं की कोशिश की है एक गैर-गतिविधि कक्षा में अभी भी एटीसीविटी रिसेट का उपयोग करें ... – user1839514