它们具有onPreExecute、doInBackground和onPostExecute方法,用于使用Internet与phphtml" target="_blank">文件通信。当我在Samsung Galaxy S7中运行它,并做一个toast.maketext,用于在屏幕上显示各种方法中的文本时,它工作得非常好。但是当我在Huawei CAM-L03中运行它时,只向我显示onPreExecute和onPostExecute的文本,而从不进入doInBackground,我也不知道为什么。
要调用类,我执行以下操作:
Sender s=新发件人(mainactivity.this,URL_Total);
这是我的建筑。格雷德尔:
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
defaultConfig {
applicationId "com.example.pruebainsp"
minSdkVersion 15
targetSdkVersion 22
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
implementation 'com.android.support:design:26.1.0'
implementation files('libs/PhotoUtil.jar')
implementation files('libs/GenAsync.1.2.jar')
}
编辑1:祝酒词不是真正的问题..我只为视图添加它们,只是为了检查方法。真正的麻烦是DoInBackground不运行或做任何事情。
下面是Sender类的代码。Samsung Galaxy S7输入if(mainactivity.ResponseWeb!=null),但在华为CAM-L03中ResponseWeb始终为null,所以每次我都收到消息toast.maketext(c,“error:response”+mainactivity.ResponseWeb,toast.length_short).show();,而且从来没有去做连接的私有字符串send(),因为doInBackground在这里不起作用(只在华为手机中)。
GO TO EDIT 2
编辑2:我用日志更新代码,下面是:
public class Sender extends AsyncTask<Void,Void,String> {
Context c;
String urlAddress;
ProgressDialog pd;
String fileTodosUsers = "TodosUsuarios";
private static final String TAG = Sender.class.getSimpleName();
/*
1.OUR CONSTRUCTOR
2.RECEIVE CONTEXT,URL ADDRESS AND EDITTEXTS FROM OUR MAINACTIVITY
*/
public Sender(Context c, String urlAddress) {
this.c = c;
this.urlAddress = urlAddress;
//Log.v(TAG, "Mensaje 2");
}
/*
1.SHOW PROGRESS DIALOG WHILE DOWNLOADING DATA
*/
@Override
protected void onPreExecute() {
Log.i(TAG, "OnPre");
super.onPreExecute();
pd=new ProgressDialog(c);
pd.setTitle("En Proceso");
pd.setMessage("Procesando datos...Espere por favor");
pd.show();
}
/*
1.WHERE WE SEND DATA TO NETWORK
2.RETURNS FOR US A STRING
*/
@Override
protected String doInBackground(Void... params) {
Log.i(TAG, "doInBack");
return this.send();
}
/*
1. CALLED WHEN JOB IS OVER
2. WE DISMISS OUR PD
3.RECEIVE A STRING FROM DOINBACKGROUND
*/
@Override
protected void onPostExecute(String response) {
Log.i(TAG, "onPost");
super.onPostExecute(response);
MainActivity.ResponseWeb = response;
if (MainActivity.ResponseWeb != null) {
//...
//HERE CODE DO SOME STUFF
//...
}
else {
Toast.makeText(c, "Error: response " + MainActivity.ResponseWeb , Toast.LENGTH_SHORT).show();
}
pd.dismiss();
}
/*
SEND DATA OVER THE NETWORK
RECEIVE AND RETURN A RESPONSE
*/
private String send()
{
Log.i(TAG, "On Send 1");
//CONNECT
HttpURLConnection con=Connector.connect(urlAddress);
Log.i(TAG, "On Send 2");
if(con==null)
{
Log.i(TAG, "On Send 3");
return null;
}
try
{
Log.i(TAG, "On Send 4");
OutputStream os=con.getOutputStream();
Log.i(TAG, "On Send 5");
//WRITE
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(os,"UTF-8"));
Log.i(TAG, "On Send 6");
bw.flush();
Log.i(TAG, "On Send 7");
//RELEASE RES
bw.close();
Log.i(TAG, "On Send 8");
os.close();
Log.i(TAG, "On Send 9");
//HAS IT BEEN SUCCESSFUL?
int responseCode=con.getResponseCode();
Log.i(TAG, "On Send 10");
Log.i(TAG, "responseCode = " + responseCode);
if(responseCode==con.HTTP_OK)
{
Log.i(TAG, "On Send 11");
//GET EXACT RESPONSE
BufferedReader br=new BufferedReader(new InputStreamReader(con.getInputStream()));
Log.i(TAG, "On Send 12");
StringBuffer response=new StringBuffer();
Log.i(TAG, "On Send 13");
String line;
Log.i(TAG, "On Send 14");
//READ LINE BY LINE
while ((line=br.readLine()) != null)
{
Log.i(TAG, "On Send 15");
response.append(line);
}
//RELEASE RES
Log.i(TAG, "On Send 16");
br.close();
Log.i(TAG, "On Send 17");
return response.toString();
}else
{
Log.i(TAG, "On Send 18");
}
} catch (IOException e) {
Log.i(TAG, "On Send 19");
e.printStackTrace();
}
Log.i(TAG, "On Send 20");
return null;
}
下面是logcat:
04-04 15:34:01.402 20341-20341/com.example.pruebainsp I/Sender: OnPre
04-04 15:34:01.445 20341-20550/com.example.pruebainsp I/Sender: doInBack
04-04 15:34:01.445 20341-20550/com.example.pruebainsp I/Sender: On Send 1
04-04 15:34:01.445 20341-20550/com.example.pruebainsp I/Sender: On Send 2
04-04 15:34:01.446 20341-20550/com.example.pruebainsp I/Sender: On Send 4
04-04 15:34:01.561 20341-20550/com.example.pruebainsp I/Sender: On Send 5
04-04 15:34:01.562 20341-20550/com.example.pruebainsp I/Sender: On Send 6
04-04 15:34:01.562 20341-20550/com.example.pruebainsp I/Sender: On Send 7
04-04 15:34:01.562 20341-20550/com.example.pruebainsp I/Sender: On Send 8
04-04 15:34:01.562 20341-20550/com.example.pruebainsp I/Sender: On Send 9
04-04 15:34:01.700 20341-20550/com.example.pruebainsp I/Sender: On Send 10
04-04 15:53:57.934 27226-27436/com.example.pruebainsp I/Sender: responseCode = 403
04-04 15:34:01.700 20341-20550/com.example.pruebainsp I/Sender: On Send 18
04-04 15:34:01.700 20341-20550/com.example.pruebainsp I/Sender: On Send 20
04-04 15:34:02.214 20341-20341/com.example.pruebainsp I/Sender: onPost
doinbackground()
顾名思义是在后台线程中执行任务。理想情况下,您不能在后台线程上执行UI相关操作。三星的一些设备倾向于允许这样做,这是相当奇怪的。在某些手机上,它会直接使你的应用崩溃。
为了使它在所有设备上都能工作,您可以:
@Override
protected Object doInBackground(Object[] objects) {
activityObj.runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(contet, "Hello", Toast.LENGTH_LONG).show();
}
});
return null;
}
或
@Override
protected Object doInBackground(Object[] objects) {
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), "Hello", Toast.LENGTH_LONG).show();
}
});
}
我需要实现具有暂停/恢复功能的音频录制,输出必须是m4a文件格式。所以我实现了PCM格式的录音。然后我使用(仅适用于旧的Android版本)我在这里找到的库-https://github.com/timsu/android-aac-enc 奇怪的是它适用于很多设备(比如我的nexus 7),但不适用于Samsung Star。没有崩溃,之后的玩家试图播放它,但只有一种非常奇怪的噪音。 我怀疑这与处
问题内容: 这是我的代码,它可以在台式机和平板电脑上完美运行,但不能在移动设备上运行。是代码还是在移动设备上无法使用某些字体 问题答案: 您需要添加所有需要的内容来喜欢这个示例: 资料来源 :https://css-tricks.com/snippets/css/using-font-face/ 希望能有所帮助,加油。 ( 如果您需要转换字体,则需要此 字体生成器 )
我有两个应用程序——基于浏览器的客户端和基于NodeJS的服务器,它们都使用WebSockets进行通信(我使用的是ColyseusJS库)。问题是,当我在本地主机上测试它们时,一切都正常,但当我将应用程序部署到我的Ubuntu VPS服务器时,它停止工作。 我在尝试连接时在浏览器中收到的消息是: 所以它到达服务器(因为当服务器被禁用时,消息是“连接建立中的错误:净::ERR_CONNECTION
FCM推送通知在以下设备中正常工作:当设备位于后台、前台时,以及当应用程序通过从托盘中刷卡关闭时。品牌名称(Android版)Micromax(5.1)摩托罗拉(7.1.1)诺基亚(8.1.0)三星(8.0.0)Nexus(8.1.0)小米(7.1.2) 但在oneplus中,当应用程序通过从托盘中刷卡关闭时,fcm通知不起作用,但当应用程序位于前台和后台时,fcm通知可以正常工作。设备版本One
我已经在Drive:/SOFTWARES/wamp文件夹上安装了wamp服务器。 但是在这里,我有一个问题。 只有localhost向我显示wamp索引页。 如果我输入网址,设置为虚拟主机,要么1。当我不使用互联网时,它们显示“无法连接”。2.他们通过网络重定向到一些网址。 我在wamp安装后采取的步骤: 1) 联合国对httpd中的vhost配置行进行了评论。配置文件 3) 在windows的主
我试图建立一个应用程序与代号之一,上传一个服务器的照片从相机捕获,然后缩小到300x300连同GPS坐标。 在模拟器(Iphone或ANdroid)上,一切都工作得很好,照片被接收并存储在服务器上,其他数据也是如此。在构建了Android应用程序后,它在Android上也能正常工作。 所以我不确定我是不是在代号One上做错了什么,还是和Laravel有关系。 在CN1中,我使用以下方式发送数据: