OSDN Git Service

Move insert share info operation to a thread to avoid Receiver timeout
authorLixin Yue <L.X.YUE@motorola.com>
Wed, 23 Dec 2009 07:37:27 +0000 (15:37 +0800)
committerJaikumar Ganesh <jaikumar@google.com>
Mon, 4 Jan 2010 18:38:13 +0000 (10:38 -0800)
commitc6f1bacf1d4c39d7efd5dc98004d936c18ed51f1
treedcf053b6b44a1bda39dd524886cd4b164691ebc8
parent1f0fc26568c1babf0c66d2c75812b72e894eb0de
Move insert share info operation to a thread to avoid Receiver timeout

In OppReceiver, the function mOppManager.startTransfer(remoteDevice), which
        is used to insert share records to DB,  can be really a time-consuming
        operation in case of 300 or more objects sharing case.
        For onReceive() function in BroadcastReceiver, there are below specification:
        The function  is normally called within the main thread of its process, so you should never
        perform long-running operations in it  (there is a timeout of 10 seconds that the system allows
        before considering the receiver to  be blocked and a candidate to be killed)

Add handle to concurrent sending case
        In Gellary, user can multiple select files (say 50files), and share via bluetooth to device1,
        and then right away share via bluetooth to device2, and also can share to device3. In such
        extream case, we need ensure all share info are saved to db.

Complete the TODO in OppManager
       Store application data to SharedPreferences and restore them when service restart.
res/values/strings.xml
src/com/android/bluetooth/opp/BluetoothOppLauncherActivity.java
src/com/android/bluetooth/opp/BluetoothOppManager.java
src/com/android/bluetooth/opp/BluetoothOppNotification.java
src/com/android/bluetooth/opp/BluetoothOppReceiver.java