Android应用运行其他应用并返回主应用

时间:2018-12-17 23:03:40

标签: android

点击一些按钮后,我已经在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(); 我没工作有什么想法吗?

2 个答案:

答案 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);