/ / एंड्रॉइड में स्क्रीन पर सेवा टेक्स्ट अपडेट कैसे प्रदर्शित करें? - एंड्रॉइड, एंड्रॉइड-सर्विस, एंड्रॉइड-यूई

Android में स्क्रीन पर सेवा टेक्स्ट अपडेट कैसे प्रदर्शित करें? - एंड्रॉइड, एंड्रॉइड-सर्विस, एंड्रॉइड-यूई

मैं एक एंड्रॉइड गतिविधि बना रहा हूं और एक शुरू कर रहा हूंनिम्नलिखित कोड का उपयोग कर इस गतिविधि से सेवा। अब मैं इस सेवा से स्क्रीन पर "हैलो उपयोगकर्ता" टेक्स्ट प्रदर्शित करना चाहता हूं, जिसका अर्थ है कि सेवा को इस प्रदर्शन को ट्रिगर करना चाहिए। मैं Toast.maketext.show का उपयोग कर सकता था लेकिन प्रदर्शन कुछ सेकंड के बाद गायब हो जाएगा।

    new Thread(new Runnable() {
@Override
public void run() {
startAdapterIntent.setAction("START_ADAPTER");
startService(startAdapterIntent);
System.out.println("Thread2: Adapter Service started.");
}
}).start();

मैं उसको कैसे करू?

मैंने इस लिंक का उपयोग करने की कोशिश की: सेवा में थ्रेड से मुख्य गतिविधि UI में परिवर्तन करना

और इसका (संभवतः) मूल लिंक http://developer.android.com/reference/android/app/Service.html खंड "रिमोट मैसेंजर सेवा नमूना"

इस दूसरे लिंक का उपयोग करते समय, सर्विसकनेक्शन का ऑन-सर्विस कनेक्टेड हिस्सा काम नहीं कर रहा है? कृपया मदद करें। धन्यवाद।

उत्तर:

जवाब के लिए 0 № 1

आपकी सेवा के भीतर से आपको एक बनाना चाहिएहैंडलर जिसे टाइमर कार्य द्वारा ट्रिगर किया जा सकता है, हैंडलर वर्तमान में सक्रिय यूआई थ्रेड के साथ संचार करने के लिए सीधे जिम्मेदार होना चाहिए .. उदाहरण होगा

    long delay  = 3000;
long period = 3000;
TimerTask mDoTask = new TimerTask() {
@Override
public void run() {
xHandler.sendMessage(Message.obtain(xHandler, SOME_OPERATION));
}
};
mT.scheduleAtFixedRate(mDoTask, delay, period);
Handler xHandler=new Handler(){
@Override
public void handleMessage(Message message){
switch (message.what){
case SOME_OPERATION:
YourMethod();// in this method you can display your text
break;
}
}
};