【问题标题】:I want to upload images (using asyncTask),but if my internet is down,i want to send a broadcast intent我想上传图片(使用 asyncTask),但如果我的互联网出现故障,我想发送广播意图
【发布时间】: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


【解决方案1】:

请参考:

Broadcast receiver for checking internet connection in android app

这里的想法是,如果您的互联网出现故障,请发送此接收器注册的广播意图,一旦您的互联网连接更改,此接收器将启动,然后您可以提出上传图像的请求。

【讨论】:

    猜你喜欢
    • 2022-07-27
    • 2023-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-29
    • 2021-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多