we're going to talk about is what's going on in this process, what's happening, and what's going to happen.Where will the message be sent when calling handler to send a message-related method? From the example code above you can see that the message will eventually go back to the handler hand and be handled by himself. What we need to figure out is the process of sending the message to the receiving part.W
/djx123456/article/details/6325983
2. Detailed thread details link http://lavasoft.blog.51cto.com/62575/27069/
Android uses Handler to update the UI of a sub-Thread
You have too many problems writing this code, but your requirements are easy to implement. You can upload the textview object to the ServerThread and write the following code in the ServerThread:Handler handler = new
In the process of Android programming, if an operation in the activity will run for a long time, for example: Download the file. This time if the main thread to download files directly, the activity will cause the death of the phenomenon, and if the time is more than 5 seconds, there will be ANR error.In this case, you can use handler to handle it.The main classes involved are: Handler, Thread, Message, Mes
Andriod provides handler and Looper to meet the communication between threads. Handler first-out principle. The Looper class is used to manage message exchange (Messageexchange) between objects within a particular thread. 1)Looper: A thread can produce a
removed from the message. Follow the principle of FIFO.2 HandlerResponsible for sending messages to the message container, which is MessageQueue.3 Looper Rotation deviceBy calling its own loop method, the message is continuously fetched from the message queue and sent to target (that is, handler) to process the message. When there is no rotation message in the message queue, it is in a blocked state.Let's
First, the message class does not need to say much, the internal use what property to hold the identifier, with obj (object) to hold the data to carry, with target (target) to hold the target handler.So there needs to be a handler (handle) class to handle the message, by calling the SendMessage (message) method in the handler class, I've always thought that the logic of the method name is very strange, and
"to hold entity aggregation", layout ListView or ListView related subclass "for storing class capacity"* Adapter "You used to fit a clustered adapter", let the layout and adapter Connect "Setadapter"three. Case one used to handler, here again summed up: can look at the source code, very clear. Andriod provides handler and Looper to meet the communication betwee
Handler, loiter, HandlerThread analysis, handlerthreadloiter
Handler must have been used in the process of writing Android code, especially when the blocking operation thread is used to update the UI thread. Handler is used properly to prevent many multi-thread exceptions.
Logoff is also known to everyone, but the logoff is generally not used to write application
This article is actually in vitro. If you want to know people, you can study it or help you understand handler...
Let's talk about the three constructors of handler and start our journey of source code parsing...
(1) default constructor
/** * Default constructor associates this handler with the queue for the * current thread. * * If there isn'
. Personal Summary: ListView-----Adapter* First, regardless of adapter is the type of adapter "aggregation type"* Implement adapter's ListView at least: Data "entity: JavaBean", aggregation "to hold entity aggregation", layout ListView or ListView related subclass "for storing class capacity"* Adapter "You used to fit a clustered adapter", let the layout and adapter Connect "Setadapter"three. Case one used handler, here again to summarize: can look a
;
if (masynchronous) {
msg.setasynchronous (true);
}
Return Queue.enqueuemessage (msg, uptimemillis);
Here is the message to the team, the following is the message in the MessageQueue in the team
Boolean Enqueuemessage (msg, long when) {if (Msg.target = = null) {throw new IllegalArgumentException ("message
Must have a target. ");}
if (Msg.isinuse ()) {throw new IllegalStateException (msg + "This message being already in use."); } synchronized (this) {if (mquitting) {illegal
first, in the mainactivity why just similar to write a line as follows code can use handler it? New Handler () {@Override publicvoid handlemessage (Message msg) { // ha Ndle the NSG message ... }}; privatevoid sendMessage () { handler.sendemptymessage (one);}Open the source of the handler in its constructor, see the following lines of code:Mlooper = Loo
default. After the main thread is started, the UI is drawn first, then it enters a message loop (loop), waits and executes various messages and events from the system, various user click/touch events, message events sent by other threads, and so on. This is a common pattern of threading, which is to enter a "Wait command", "Execute command/message", "Wait for command/message" loop.So how do other non-UI threads interact with the main thread that enters the message loop? It depends on the handle
Handler diagram of the execution process:When our child thread wants to modify the UI component in the activity, we can create a new handler object to send the message to the main thread, and the information we send will wait for the MessageQueue of the main thread and be fetched by Looper in first-in, first-out order. It is then distributed to the corresponding
must be associated with a looper, and the two are one by one corresponding, note that this is very important oh! In addition, Looper is responsible for taking out a message from its internal MessageQueue to the handler for processing. Since our handler here is implemented in the UI thread, after such a
:(Handler, Looper, Message, MessageQueue)Message: Messages that contain the message ID, the message Processing object, and the processed data are queued by MessageQueue and processed by handler.Handler: Handler, responsible for sending and processing the message. When using handler, you need to implement the Handlemess
the main thread and then use this handler to communicate with the main thread in the new threads. Because the message queue for the main thread is already built, you can create the handler directly, and the new thread will be used directly.
In some cases, it is necessary to communicate between multithreading, which is to create MessageQueue and handler for each
application runs in a Dalvik virtual machine process. When a process starts, a main thread (mainthread) is started. The main thread is responsible for processing UI-related events, therefore, the main thread is often called the UI thread. Because Android uses a single-threaded UI model, you can only operate the UI elements in the main thread. If you operate the UI directly in a non-UI thread, an error is reported. Handler needs to be initialized in t
initializes a Looper object when creating the UI thread, and also creates a MessageQueue associated with it;
Handler: The function is to send and process information, if you want Handler to work properly, there is a Looper object in the current thread
Message: Handler
thread, and handler constantly gets and processes the message from MessageQueue This causes the method in the handler class to process the message to be recalled. new Thread (new Runnable () {@Override public void run () { try {Thread.Sleep ( 2000 catch (Interruptedexception e) {E.prin Tstacktrace (); The Message msg = Handler.obtainmessage (); Msg.what = Constant.user_login; Msg.o
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.