зеркало из https://github.com/mozilla/gecko-dev.git
Bug 674725 - Part AB - Create a thread to handle SMS IO on Android. r=cjones
This commit is contained in:
Родитель
92c7e7f541
Коммит
3b9cbe81d3
|
@ -421,6 +421,8 @@ abstract public class GeckoApp
|
|||
mSmsReceiver = new GeckoSmsManager();
|
||||
registerReceiver(mSmsReceiver, smsFilter);
|
||||
|
||||
GeckoSmsManager.init();
|
||||
|
||||
if (!checkAndSetLaunchState(LaunchState.PreLaunch,
|
||||
LaunchState.Launching))
|
||||
return;
|
||||
|
@ -574,6 +576,8 @@ abstract public class GeckoApp
|
|||
{
|
||||
Log.i(LOG_FILE_NAME, "destroy");
|
||||
|
||||
GeckoSmsManager.shutdown();
|
||||
|
||||
// Tell Gecko to shutting down; we'll end up calling System.exit()
|
||||
// in onXreExit.
|
||||
if (isFinishing())
|
||||
|
|
|
@ -55,6 +55,8 @@ import android.content.ContentUris;
|
|||
import android.net.Uri;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
|
||||
import android.telephony.SmsManager;
|
||||
import android.telephony.SmsMessage;
|
||||
|
@ -226,6 +228,28 @@ class Postman
|
|||
}
|
||||
}
|
||||
|
||||
class SmsIOThread extends Thread {
|
||||
private final static SmsIOThread sInstance = new SmsIOThread();
|
||||
|
||||
private Handler mHandler;
|
||||
|
||||
public static SmsIOThread getInstance() {
|
||||
return sInstance;
|
||||
}
|
||||
|
||||
public boolean execute(Runnable r) {
|
||||
return mHandler.post(r);
|
||||
}
|
||||
|
||||
public void run() {
|
||||
Looper.prepare();
|
||||
|
||||
mHandler = new Handler();
|
||||
|
||||
Looper.loop();
|
||||
}
|
||||
}
|
||||
|
||||
public class GeckoSmsManager
|
||||
extends BroadcastReceiver
|
||||
{
|
||||
|
@ -244,6 +268,10 @@ public class GeckoSmsManager
|
|||
public final static int kUnknownError = 2;
|
||||
public final static int kInternalError = 3;
|
||||
|
||||
public static void init() {
|
||||
SmsIOThread.getInstance().start();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
if (intent.getAction().equals(ACTION_SMS_RECEIVED)) {
|
||||
|
@ -485,4 +513,8 @@ public class GeckoSmsManager
|
|||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
public static void shutdown() {
|
||||
SmsIOThread.getInstance().interrupt();
|
||||
}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче