Android 在安卓系统中,一段时间后如何开始活动?

Android 在安卓系统中,一段时间后如何开始活动?,android,android-activity,Android,Android Activity,我正在开发android应用程序,因为我想启动另一个应用程序(我的第二个应用程序)。我正在执行以下代码 Intent i= new Intent(); i.setComponent(new ComponentName("my second app package","my class name")); startActivity(i); 它工作得很好 我想在3秒或5秒后隐藏第二个应用程序,因为我遵循下面的代码 Timer t=new Timer(); t.sch

我正在开发android应用程序,因为我想启动另一个应用程序(我的第二个应用程序)。我正在执行以下代码

 Intent i= new Intent();
 i.setComponent(new ComponentName("my second app package","my class name"));
 startActivity(i);
它工作得很好

我想在3秒或5秒后隐藏第二个应用程序,因为我遵循下面的代码

 Timer t=new Timer();
            t.schedule(new TimerTask() {

                @Override
                public void run() {
                    // TODO Auto-generated method stub
                    Intent i = new Intent("first app package","first app class name" );
                i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(i);
                }
            }, 5000);
但这段代码并没有像我预期的那样仅在我的第二个应用程序中工作。但其他应用程序运行良好。取而代之的是线程我也尝试了处理程序,alaram管理器也没有成功。请任何人在这方面帮助我

我想在第二个应用程序中更改代码,还是代码有什么问题

谢谢

   new Handler().postDelayed(new Runnable() {

                            @Override
                public void run() {
                        // your code to start second activity. Will wait for 3 seconds before calling this method

startActivity(new Intent(FirstActivityClass.this,SecondActivityClass.class));
                }
            }, 3000);
在创建第一个活动后使用上述代码

在创建第一个活动后使用上述代码

尝试以下操作:

try{
    Thread.sleep(3000);
    startActivity(secondActivityIntent);
}catch(Exception e){
   //print error here
}
试试这个:

try{
    Thread.sleep(3000);
    startActivity(secondActivityIntent);
}catch(Exception e){
   //print error here
}

如果希望第二个应用程序在几秒钟后隐藏,请将此代码放入第二个应用程序的主
活动的
onCreate()

new Handler().postDelayed(new Runnable() {
     @Override
     public void run() {
            YourActivity.this.finish();
     }
 }, 3000);

如果希望第二个应用程序在几秒钟后隐藏,请将此代码放入第二个应用程序的主
活动的
onCreate()

new Handler().postDelayed(new Runnable() {
     @Override
     public void run() {
            YourActivity.this.finish();
     }
 }, 3000);

可以使用thread,但最主要的是必须调用finish()方法来完成当前活动

     Thread thread = new Thread( new Runnable() {
        @Override
        public void run() {
            try
            {
                   Thread.sleep(3000);

                }
                Intent intent = new Intent(1stActivity.this, SecondActivity.class);
                startActivity(intent);
            }
            catch (Exception e) {
                e.printStackTrace();
            }
            finally {
                finish();
            }
        }
    });

    thread.start();

在try块中,我放置了Thread.sleep(3000),您可以更改它,在try块中执行您的工作

您可以使用Thread,但主要的是您必须调用finish()方法来完成当前活动

     Thread thread = new Thread( new Runnable() {
        @Override
        public void run() {
            try
            {
                   Thread.sleep(3000);

                }
                Intent intent = new Intent(1stActivity.this, SecondActivity.class);
                startActivity(intent);
            }
            catch (Exception e) {
                e.printStackTrace();
            }
            finally {
                finish();
            }
        }
    });

    thread.start();

在try块中,我放置了Thread.sleep(3000),您可以更改它,在try块中执行您的工作

    final Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
      @Override
      public void run() {
        //Do something after 100ms
     //Intent i = new Intent("first app package","first app class name" );
      Intent i = new Intent (this , SecondActivity.class);
                    i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    startActivity(i);
      }
    }, 100);


// Time method 

import java.util.Timer;

...
Timer timer = new Timer();
timer.schedule(new TimerTask() {
  @Override
  public void run() {
    // Your database code here
  }
}, 2*60*1000);

尝试postDelayed或Timer方法

    final Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
      @Override
      public void run() {
        //Do something after 100ms
     //Intent i = new Intent("first app package","first app class name" );
      Intent i = new Intent (this , SecondActivity.class);
                    i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    startActivity(i);
      }
    }, 100);


// Time method 

import java.util.Timer;

...
Timer timer = new Timer();
timer.schedule(new TimerTask() {
  @Override
  public void run() {
    // Your database code here
  }
}, 2*60*1000);
把这段代码放在计时器任务的run方法中。它会工作的。希望对您有所帮助。谢谢



将此代码放在计时器任务的run方法中。它会起作用。希望能有所帮助。谢谢。

尝试
handler.postDelayed()
尝试过,也没有成功@md
Intent i=(“第一个应用程序包”,“第一个应用程序类名”)这显然无法编译…这是不可能的。你只能终止它的进程。请看我的答案。它会告诉你你缺少什么,而不是给出另一个解决方案。Thanksry
handler.postDelayed()
尝试过,但也没有成功@M D
Intent i=(“第一个应用程序包”,“第一个应用程序类名”)这显然无法编译…这是不可能的。你只能扼杀它的进程。看我的答案。它告诉你你缺少什么,而不是给出另一个解决方案。谢谢这也没有成功:(@Krishna:
尝试了这个也没有成功
:使用这个答案有什么问题?第二个应用程序活动只在前面。第一个应用程序没有到达前台尝试了这个也没有成功:(@Krishna:
尝试了这个也没有成功
:使用这个答案有什么问题?第二个应用程序只在前面活动。第一个应用程序没有进入前台。你是认真的吗?阻止UI线程是你能做的最糟糕的事情。你是认真的吗?阻止UI线程是你能做的最糟糕的事情。谢谢AdnanFine不要使用Thread.sleep,因为它会导致主线程睡眠。因此最好使用Handler()。PostDelayedHanks Adnan工作Fine不要使用Thread.sleep,因为它会导致主线程睡眠。因此最好使用Handler()。postDelayed