【发布时间】:2015-04-09 11:39:13
【问题描述】:
我想上传图片(使用 asyncTask),但如果我的网络中断,我想发送广播意图并在下次连接网络时自动上传图片。我在互联网处于活动状态时成功上传了图片,我看到了很多例子,但没有一个对我有帮助。
我有一个扩展 AsyncTask 的 UploadImages 类
我制作了这样的广播接收器类
public class MyBroadcastReceiver extends BroadcastReceiver {
ConnectivityManager connec;
@Override
public void onReceive(Context context, Intent intent) {
connec = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connec != null && (connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED) ||(connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED))
{
Intent intent1 = new Intent(context, UploadIntentService.class);
intent1.putExtra("", "index.html");
context.startService(intent);
}
}
}
这是我的 UploadIntentService 类
public UploadIntentService() {
super("uploadIntentService");
}
@Override
protected void onHandleIntent(Intent intent) {
new UploadImageToBucket().execute("");
Intent broadcastIntent = new Intent();
broadcastIntent.setAction("com.alg.imgSave.MyBroadcastReceiver");
broadcastIntent.addCategory(Intent.CATEGORY_DEFAULT);
broadcastIntent.putExtra("RESPONSE_STRING", "1");
broadcastIntent.putExtra("RESPONSE_MESSAGE", "Uploaded");
sendBroadcast(broadcastIntent);
}
但这不起作用
【问题讨论】:
-
我认为你不应该发送意图。您需要制作处理来自
ConnectivityManager的消息的广播接收器。
标签: android android-asynctask broadcastreceiver android-intentservice