【问题标题】:How to delay launching app on at android startup?如何在android启动时延迟启动应用程序?
【发布时间】:2013-10-22 08:04:20
【问题描述】:
public class BootUpReceiver extends BroadcastReceiver{
@Override
public void onReceive(final Context context, Intent intent) {

     //Delay 10 sec so that device could establish network
     Intent i = new Intent(context, SplashActivity.class);  
     i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
     context.startActivity(i);                

         }

}

我正在启动一个 android 启动活动,但 android 需要一些时间来建立网络连接,因此我想延迟 10 秒应用启动,以便我的应用可以使用互联网。

【问题讨论】:

    标签: android android-intent broadcastreceiver


    【解决方案1】:

    进行这种后台处理的最佳做法是创建一个启动屏幕,并在特定时间的繁重活动启动时使用各种动画和=有吸引力的东西加载它。这样用户就可以等到后台进程完成。

    您的方法似乎需要大量编码。

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      您应该使用另一个可以检测网络状态变化的广播接收器,而不是制造一些随机延迟(这是不可靠的)。例如:网络状态接收器。这将检测网络状态何时更改。见这里:Check INTENT internet connection

      所以你的应用应该有 2 个 BroadcastReceiver:BootupReceiver 和 NetworkStateReceiver。

      在 BootUpReceiver 的 onReceive() 中,将首选项中的一些标志设置为 true。 然后在 NetworkStateReceiver 的 onReceive() 中,检查 flag,如果 flag 为 true,打开你的 Activity 并将 flag 设置为 false。

      (要在 BroadcastReceiver 中的 SharedPreferences 中设置值,请参阅:Shared preferences inside broadcastreceiver

      虽然这会起作用,但这不是自动启动 Activity 的好习惯。用户可能不喜欢它。

      【讨论】:

        【解决方案3】:

        用runnable来制作

        public class BootUpReceiver extends BroadcastReceiver{
        
        @Override
        public void onReceive(final Context context, Intent intent) {
            Handler handler = new Handler();
            int delay = 100;
            handler.postDelayed(startApp, delay);
        
        
            Runnable startApp = new Runnable() {
        
                @Override
                public void run() {
        
                    Intent i = new Intent(context, SplashActivity.class);  
                    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    context.startActivity(i); 
        
                }
            };
          }
        
        }
        

        【讨论】:

        • 为什么没有运行?
        猜你喜欢
        • 1970-01-01
        • 2019-02-21
        • 1970-01-01
        • 2012-05-12
        • 1970-01-01
        • 2019-06-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多