我想更新用户使用应用程序的状态。
如果应用程序位于前台,则状态必须在线。否则,如果应用程序在后台运行,则状态必须处于脱机状态。我使用?- 1 + 2 @< 1 - 2.
true.
来计算后台任务。当我使用<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="fill_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="fill_parent">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:background="#E74E4C"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="167dp" />
<ImageView
android:id="@+id/imagetwo"
android:layout_width="match_parent"
android:layout_height="250dp"
android:layout_below="@id/button"
android:layout_margin="16dp"
android:scaleType="centerCrop"
android:src="@mipmap/ic_launcher" />
<ImageView
android:id="@+id/imageone"
android:layout_width="match_parent"
android:layout_height="250dp"
android:layout_below="@id/imagetwo"
android:layout_margin="16dp"
android:scaleType="centerCrop"
android:src="@mipmap/ic_launcher" />
</RelativeLayout>
</ScrollView>
,AsyncTask
和onStop
方法时,后台活动会挂起UI线程。
onResume
答案 0 :(得分:0)
方法是挂起你的UI,你可以通过Thread使用它们:
实施例
new Thread(new Runnable(){
//Your method or code
}).start();
答案 1 :(得分:0)
你的onPause,onResume,onStop ......这些方法应该在你的活动类中,而不是你的asynctask。
如果您查看文档,则活动可以覆盖这些方法,https://developer.android.com/reference/android/app/Activity.html
Asynctask没有这样的方法,这就是为什么它不起作用。 https://developer.android.com/reference/android/os/AsyncTask.html
答案 2 :(得分:0)
试一试:
private void doOffline() {
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
// TODO: offline
}
}, 1000); // delay 1 second
}
private void doOnline() {
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
// TODO: online
}
}, 1000); // delay 1 second
}
@override
protected void onStart() {
super.onStart();
doOnline();
}
@override
protected void onResume() {
super.onResume();
doOnline();
}
@override
protected void onPause() {
super.onPause();
doOffline();
}
@override
protected void onStop() {
super.onStop();
doOffline();
}