Hi Android experts,
I have a tricky question that I would like some advice on.
I have a thread that does a large amount of network and database
work. E.g.:
new Thread(new Runnable() {
public void run() {
String largeData = getLargeDataFromServer();
Object largeObject = xmlParser.parseFromXml(largeData);
saveLargeObjectToDatabase();
putLargeDataToSecondServer();
}
}).start();
The problem I have is that I need to stop this thread at any point.
It does not need to stop absolutely immediately, but given limited
network and memory on the phone, the sooner I can stop it the better.
I currently am testing and stopping with a method similar to this:
new Thread(new Runnable() {
public void run() {
if (shouldStop) return;
String largeData = getLargeDataFromServer();
if (shouldStop) return;
Object largeObject = xmlParser.parseFromXml(largeData);
if (shouldStop) return;
saveLargeObjectToDatabase();
if (shouldStop) return;
putLargeDataToSecondServer();
}
}).start();
This makes me very uncomfortable, and litters my code with these
shouldStop statements. Furthermore, if the system is in any of the
four long functions, that function has to complete before the test can
actually happen.
I notice that there is a Thread.stop(), but the comments warn against
using it.
Does anyone have suggestions on how to reconfigure the thread so I can
stop relatively quickly and regardless of whether execution is in one
of its subfunctions?
Thanks so much in advance,
jsdf
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---