当用户最小化后,如何在15分钟后完成申请?
如果用户未完成退出应用程序的操作,则一段时间后应用程序网络无法正常工作后,用户将返回。为了工作,需要重新启动应用程序。
我想在应用程序进入后台然后使用计时器完成应用程序时触发。
还是如何知道应用程序何时暂停而不是活动?
应用程序的生命周期。
答案 0 :(得分:2)
解决方案:
制作一个 BaseActivity ,它是所有 activity 的父级。
public class BaseActivity extends AppCompatActivity {
private static Thread t = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public void onResume() {
super.onResume();
if (t != null) {
try {
if (t.isAlive()) {
t.interrupt();
t.join();
}
} catch (Exception e) {
e.printStackTrace();
}
t = null;
}
}
@Override
public void onPause() {
super.onPause();
t = new Thread() {
public void run() {
try {
sleep(15 * 60 * 1000);
finishAffinity();
System.exit(0);
} catch (InterruptedException e) {
return;
}
}
};
t.start();
}
}
现在在您的所有活动类中扩展 BaseActivity ,如下面的示例所示,
public class ClassTest extends BaseActivity {
.....
.....
}
答案 1 :(得分:1)
您需要使用ProcessLifecycleOwner检查您的应用程序状态。它支持库版本26 +。
//Check if app is in background
ProcessLifecycleOwner.get().getLifecycle().getCurrentState() ==
Lifecycle.State.CREATED;
//Check if app is in foreground
ProcessLifecycleOwner.get().getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.STARTED);
这是ProcessLifecycleOwner的依赖。有关更多详细信息,请访问here
dependencies {
def lifecycle_version = "1.1.1"
// ViewModel and LiveData
implementation "android.arch.lifecycle:extensions:$lifecycle_version"
// alternatively - Lifecycles only (no ViewModel or LiveData).
// Support library depends on this lightweight import
implementation "android.arch.lifecycle:runtime:$lifecycle_version"
annotationProcessor "android.arch.lifecycle:compiler:$lifecycle_version" // use kapt for Kotlin
}