我到处搜索但我找不到答案,有没有办法发出简单的HTTP请求?我想在我的某个网站上请求PHP页面/脚本,但我不想显示该网页.
如果可能的话我甚至想在后台(在BroadcastReceiver中)这样做
Google 正在弃用 Android 11 中的 Android AsyncTask API,并建议java.util.concurrent改用。你可以在这里查看提交
*
* @deprecated Use the standard <code>java.util.concurrent</code> or
* <a href="https://developer.android.com/topic/libraries/architecture/coroutines">
* Kotlin concurrency utilities</a> instead.
*/
@Deprecated
public abstract class AsyncTask<Params, Progress, Result> {
Run Code Online (Sandbox Code Playgroud)
如果您在 Android 中维护带有异步任务的旧代码库,则将来可能需要对其进行更改。我的问题是,使用java.util.concurrent. 它是一个 Activity 的静态内部类。我正在寻找可以使用的东西minSdkVersion 16
private static class LongRunningTask extends AsyncTask<String, Void, MyPojo> {
private static final String TAG = MyActivity.LongRunningTask.class.getSimpleName();
private WeakReference<MyActivity> activityReference;
LongRunningTask(MyActivity context) {
activityReference = new WeakReference<>(context);
}
@Override
protected MyPojo doInBackground(String... params) { …Run Code Online (Sandbox Code Playgroud) 我如何使用Environment.getExternalStorageDirectory()从SD卡读取存储的图像或有更好的方法吗?
如何从一个(当前)活动中调用另一个活动?
为此,我想调用一个活动,其中包含当前活动的对话框消息框.
我的应用程序是从服务器下载zip文件并提取此zip文件并将文件保存到SD卡但问题是,如果我下载4-5 MB的zip文件并解压缩,这是工作正常,但如果我正在下载30-35 MB zip文件这会给我错误,抱歉我的英语沟通不好.
下面是我的下载和解压缩Zip文件的代码: -
public class UnzipManager {
private static String BASE_FOLDER;
public static Context localContext;
public static String passurl;
public static int count;
public static Context context;
/*
* You can use this flag to check whether Unzippingthread is still running..
*/
public static boolean isDownloadInProgress;
/*
* After unzipping using this flag ,you can check whether any low memory
* exceptions Occurred or not..and alert user accordingly..
*/
public static boolean isLowOnMemory;
public static int i …Run Code Online (Sandbox Code Playgroud) 我的应用程序从互联网上获取一些HTML代码,完成后,将其显示在设备屏幕上.由于这需要大约3-4秒,因此在这段时间屏幕保持黑色,我想使用进度对话框.这是我的代码:
package com.nextlogic.golfnews;
// ALL THE IMPORTS ....
public class Activity1 extends Activity {
private ProgressDialog progressDialog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);
progressDialog = ProgressDialog.show(Activity1.this, "", "Loading...");
new Thread()
{
public void run()
{
try
{
sleep(2000);
// HERE I'VE PUT ALL THE FUNCTIONS THAT WORK FOR ME
}
catch (Exception e)
{
Log.e("tag",e.getMessage());
}
// dismiss the progressdialog
progressDialog.dismiss();
}
}.start();
Run Code Online (Sandbox Code Playgroud)
该程序有效但不再显示任何内容.我在logcat中有一个错误:
Only the original thread that created a view hierarchy can touch its views.
Run Code Online (Sandbox Code Playgroud)
请你帮助我好吗 …
嗨,我的代码有问题.我的代码是
progressD = ProgressDialog.show(MenuUtama.this, "", "Uploading files to server.....", false);
Thread thread = new Thread(new Runnable(){
public void run(){
//doFileUpload();
try {
// setiap parameter yang akan dikirim melalui http
// harus encode agar
// dapat terbaca dengan baik oleh server
Cursor c = helper.getAll1(almagId);
Cursor cr = helper.getUpImage(almagId);
if(c.moveToFirst()){
//progressD = ProgressDialog.show(context, title, message)
do{
String kdstore = URLEncoder.encode(helper.getKdStore(c).toString(), "utf-8");
String nama = URLEncoder.encode(helper.getNama(c).toString(), "utf-8");
String alamat = URLEncoder.encode(helper.getAlamat(c).toString(), "utf-8");
String kdpos = URLEncoder.encode(helper.getKdPos(c).toString(), "utf-8");
String notelp = URLEncoder.encode(helper.getNotel(c).toString(), …Run Code Online (Sandbox Code Playgroud) 我尽可能多地搜索了android的开源代码,但是我无法通过2.3 SDK中的DownloadManager找到实际下载的实现.我找到了DownloadManager的源代码和下载类的源代码,该代码具有与ContentProvider交互的常量,但我无法找到该代码的源代码ContentProvider.
我想找到这个,以便我知道一个很好的方法来实现我自己的下载,因为我将使用比我的应用程序更小的2.3版本.
我花了几个小时现在正在寻找(和尝试)许多不同的方法,在获得无数"eacces permission denied"错误后,将一些文件写入我的4.4 Android KitKat的可移动SD卡.现在似乎Google对SD卡上的文件系统的访问权限有限,您只能写入应用程序拥有的目录(例如:/Android/data/com.mycompany.myapp/files/).
最后,我得到了一些工作,可以在可移动SD卡上创建一个可以写入的目录.但是我很好奇为什么为了获得对可移动SD卡上的这个拥有目录的访问,我首先必须使用外部目录的路径创建一个新的文件对象?
我的实施:
首先,我创建两个全局变量来容纳外部和可移动路径的字符串.
MainActivity
public class MainActivity extends ActionBarActivity {
String externalStorageDirectory;//path to owned external storage files
String secondaryStorageDirectory ;//path to owned removable storage files
Run Code Online (Sandbox Code Playgroud)
然后我询问系统调用制造商特定目录的内容,并开始连接externalStorage和removableStorage变量的绝对路径.我还创建了一个新的File对象,该对象使用外部应用程序拥有的目录的路径进行初始化.
onCreate()
externalStorageDirectory = this.getExternalFilesDir(null).toString();//build absolute path to the app owned external directory
File folder = new File(externalStorageDirectory ); //THIS LINE IS CRUCIAL!!
Log.d("DEBUG", " - External Path" + externalStorageDirectory );// "/storage/emulated/0/Android/data/com.mycompany.myapp/files"
String ownedDirectory = "/Android/data/" + this.getPackageName() + "/files/";
secondaryStorageDirectory = System.getenv("SECONDARY_STORAGE").toString() + ownedDirectory;//build absolute path to the app …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 android DownloadManager 下载存储在 Google Drive 中的文件。
我从 Google 获得登录令牌,如下所示:
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(AppConfig.getInstance().get("google_client_id"))
.requestProfile()
.requestEmail()
.build();
Run Code Online (Sandbox Code Playgroud)
我收到一个带有谷歌驱动器文件 url 的通知,我将它传递给 DownloadManager,将令牌传递给它:
String cookie = CookieManager.getInstance().getCookie(d.getURL());
request.addRequestHeader("Cookie",cookie);
request.addRequestHeader("Authorization", "OAuth " + profile.getToken());
//d is the document object, that contains url, file name, etcc
//Profile is a simple object class that hold the user data taken from sign Google, like token, name, email, etcc
Run Code Online (Sandbox Code Playgroud)
使用简单的广播接收器来管理下载结果 (ACTION_DOWNLOAD_COMPLETE)。
下载已成功完成,但文件已损坏。如果我尝试打开它,设备(和电脑)会给我一个格式错误。该文件包含 Google 页面的 HTML 代码,该代码表示存在错误,仅此而已。
(我正在使用的帐户可以从这个特定的驱动器存储中读取和下载文档)
这是使用 DownloadManager 下载 Google Drive 文件的正确方法吗?有可能这样做吗?