点击一些按钮后,我已经在MainActivity类中定义了以下操作。
mSynchronizeData.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(mBluetoothAdapter.isEnabled()){
String packageName = "com.veryfit2hr.second";
Intent intent = getPackageManager().getLaunchIntentForPackage(packageName);
ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
startActivity(intent);
SystemClock.sleep(15000);
}
}
});
打开其他应用程序后,我想在定义的15秒延迟后返回previos应用程序吗?我尝试了MainActivity.super.onBackPressed();
我没工作有什么想法吗?
答案 0 :(得分:0)
您可以在正在启动的新活动上调用finish()方法,并在此延迟15秒。从文档中:
完成活动并应将其关闭时调用此函数。通过onActivityResult()将ActivityResult传播回发起您的人。
答案 1 :(得分:0)
如果您拥有新活动,则可以在创建新活动后的所需时间后简单地致电finish()
。但是,如果不这样做,一种解决方案是在15秒后在先前启动的活动之上开始自己的活动。
我通常会建议您反对这种模式,因为在应用之间似乎是随机地启动用户可能会使用户感到困惑,但这是可行的实现。
您希望将调用安排在15秒后进行,而不是通过调用SystemClock.sleep(15000);
来锁定主线程。为此,我们可以使用Handler。
Handler handler = new Handler(Looper.getMainLooper())
handler.postDelayed(new Runnable() {
@Override
public void run() {
Intent intent = // Create intent for your activity here
startActivity(intent)
}
}, 15000);