标签: android-networking

网络是在AsyncTask和NetworkOnMainThreadException错误中

我想从远程数据库中获取一些数据,并且在我的活动的AsyncTask子类中有一些网络,但是当我尝试加载我的程序时,它显示了NetworkOnMainThreadException.

这是我的代码:

public class MyMapLocationActivity extends MapActivity {

private MapView mapView;
private static String url_product_details = "http://myurl.com/readfromdb";
private static final String TAG_SUCCESS = "success";
private static final String TAG_LATITUDE = "latitude";
private static final String TAG_LONGITUDE = "longitude";
private static final String TAG_POINT = "point";

    JSONParser jsonParser = new JSONParser();

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.main); 

    mapView = (MapView) findViewById(R.id.mapview);
    mapView.setBuiltInZoomControls(true);

    ReadLocations Read = new ReadLocations();
    Read.execute();
}

//And my networking AsyncTask:

class ReadLocations extends AsyncTask<String, String, String> { …
Run Code Online (Sandbox Code Playgroud)

android android-networking android-asynctask

1
推荐指数
1
解决办法
1228
查看次数

如何从IP地址解析网络主机名

我工作的基于WiFi聊天引擎,我能够通过跟随着检索连接到当前的wifi网络主机列表这个链接现在得到了与IP地址的设备列表中,但我需要从IP地址的主机名和尝试以下

InetAddress inetAddr;
try {
    inetAddr = InetAddress.getByName(host.hostname);
    String hostname = inetAddr.getHostName();
    String canonicalHostname = inetAddr.getCanonicalHostName();
    holder.computerName.setText("Canonical : "+host.hostname);
} catch (Exception e) {
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

这里主机名和规范主机名都显示ip地址而不是主机名.

请帮我解决这个问题.

ip android hostname android-networking android-wifi

1
推荐指数
1
解决办法
4383
查看次数

如何解决给定 Android 代码片段中无法暂停活动的问题?

以下是android代码片段

\n\n
runOnUiThread(new Runnable() {\n                                public void run() {\n                                    AlertDialog alertDialog;\n                                    alertDialog = new AlertDialog.Builder(MainActivity.this).create();\n                                    alertDialog.setTitle("Network error");\n                                    alertDialog.setMessage("Disconnected");\n                                    alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "ok", new DialogInterface.OnClickListener() {\n                                        /** ON clicking oKay button **/\n                                        public void onClick(DialogInterface dialog, int id)\n                                        {\n\n                                            hasConnectServiceStarted = false;\n                                            IP = null;\n//                                            Intent intent = getIntent();\n                                            Intent intentSplash = new Intent(getApplication().getApplicationContext(), SplashActivity.class);\n\n                                            /** Shutdown the nodemain executor service if\n                                             * HOST goes down\n                                             */\n                                            nodeMainExecutorService.forceShutdown();\n                                            /** and restart the Main Activity that will prompt\n                                             * user to reconnect to the …
Run Code Online (Sandbox Code Playgroud)

android android-networking

1
推荐指数
1
解决办法
1万
查看次数

Android Studio - 快速的 Android 网络库将文件上传到服务器 - 错误

我正在尝试将从相机或图库拍摄的图像上传到 php 服务器。为此,我正在使用库Fast-Android-Networking

使用我的代码,我可以看到文件正在写入服务器,但是,它保存为0 B,该onProgress函数也正在注销写入的正确字节。

这有什么帮助吗?如何使用此库将从相机或图库拍摄的文件正确传递到服务器?

private File mFileTemp;

 btn_update.setOnClickListener(new OnClickListener() {
    // Start new list activity
    public void onClick(View v) {
        uploadFileNew(pref.getString("user_id", null));
    }
 });

    public void uploadFileNew(String frm_iduser) {

            String uploadUrl = "https://plus.example.com/apps/mobile/registered_users/uploadProfilePicAndroid.php?fileName=" + frm_iduser + ".png";

            AndroidNetworking.upload(uploadUrl)
                    .addMultipartFile("image",mFileTemp)
                    .addMultipartParameter("key","value")
                    .setTag("uploadTest")
                    .setPriority(Priority.HIGH)
                    .build()
                    .setUploadProgressListener(new UploadProgressListener() {
                        @Override
                        public void onProgress(long bytesUploaded, long totalBytes) {
                            // do anything with progress
                            Log.d("responce_app",String.valueOf(bytesUploaded));
                        }
                    })
                    .getAsJSONObject(new JSONObjectRequestListener() {
                        @Override
                        public void onResponse(JSONObject response) {
                            // do …
Run Code Online (Sandbox Code Playgroud)

php android android-networking

1
推荐指数
1
解决办法
4965
查看次数

使用协程解析 Android 上的改造响应的最佳实践是什么

我试图找出处理改造响应的最佳实践是什么。

我提供这样的改造单例:

val okHttpClient = OkHttpClient.Builder()
      .addInterceptor(AuthInterceptor())
      .addInterceptor(httpLoggingInterceptor)
      .build()

val retrofit = Retrofit.Builder()
      .client(okHttpClient)
      .baseUrl(BuildConfig.BASE_URL)
      .addConverterFactory(GsonConverterFactory.create())
      .addCallAdapterFactory(CoroutinesResponseCallAdapterFactory())
      .build()
    
val service = retrofit.create(ShowsService::class.java)
Run Code Online (Sandbox Code Playgroud)

服务接口是这样的:

interface ShowsService {

    @GET("popular")
    suspend fun fetchPopularShows(): Response<PopularShows>
}
Run Code Online (Sandbox Code Playgroud)

我从 API 获取节目列表,并在存储库中解析它,如下所示:

override suspend fun getShows(): Result<List<Show>?> {
    val shows = service.fetchPopularShows()
    val body = shows.body()
    val errorBody = shows.errorBody()
    return when {
        body != null -> {
            Result.Success(body.shows)
        }
        errorBody != null -> {
            Result.Error(Exception(errorBody.string()))
        }
        else -> {
            Result.Error(Exception("Unknown error: ${shows.raw().message}"))
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然而,这感觉非常非 …

android android-networking kotlin retrofit kotlin-coroutines

1
推荐指数
1
解决办法
990
查看次数

当用户快速/重复点击按钮时,我是否负责处理?

作为Android开发人员,我是否负责处理用户快速重复地按下按钮的情况?或者这被认为是用户滥用?从后端的数据角度来看,没有什么不好的事情发生.

我有一个按钮,选择后进行服务器调用.一旦服务器响应,就会从返回的消息中生成一个活动(使用处理程序).在某些情况下,如果用户反复地混淆按钮,重复的活动可以开始堆叠并且可能导致糟糕的用户体验(即,用户可能需要多次点击后退按钮才能返回到前一个屏幕)

编辑:我遗漏了一些细节.现在正在等待服务器响应时显示一个微调器对话框.这会拦截所有点击.问题在于,在某些情况下,解雇微调器和启动新活动之间的时间足够长,以便用户进行更多点击.

现在我正在禁用按钮,但似乎有点黑客可能有更好的解决方案.

android android-networking android-activity

0
推荐指数
2
解决办法
138
查看次数

WifiManager setWifiEnabled(),Wi-Fi 禁用后是否继续?

我想使用蜂窝数据下载文件。下载文件时似乎没有指定网络连接的API,所以我试图在下载前禁用Wi-Fi。

好像可以用这个setWifiEnabled方法,但是文档没有提到是否阻塞。我假设它不是。然后,我必须等到 Wi-Fi 被禁用才能继续下一行。

val wifiManager = this.applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager
wifiManager.isWifiEnabled = false
(how to wait here until the system finishes disabling Wi-Fi?)
downloadFile()
Run Code Online (Sandbox Code Playgroud)

什么是最简单的方法?

android android-networking

0
推荐指数
1
解决办法
209
查看次数