2012-07-11 86 views
1

我有,只要它没有找到任何连接它打开了我的溅活动说:“没有网络连接” ......到现在为止一切都很好,但接收互联网connectivity..and广播接收器,当用户放使用设备主页按钮将应用程序拖放到背景中,然后关闭互联网连接,当应用程序在后台运行时,sp​​lash活动进入前台。我不想让这种情况发生,但是只能在后台打开。当应用程序在后台时,广播接收器在前台打开活动?

@Override 
    public void onReceive(Context context, Intent intent) { 


    // SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context); 

    boolean isNetworkDown = intent.getBooleanExtra(
     ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);  

    if (isNetworkDown) { 
     Log.d(TAG, "onReceive: NOT connected, stopping UpdaterService"); 
     Intent myintent=new Intent(context,NoConnectivity.class); 
     myintent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     context.startActivity(myintent); 

    } else 

    { 

     Log.d(TAG, "onReceive: connected, starting UpdaterService"); 
     NoConnectivity.h.sendEmptyMessage(0);  


    } 
    } 
+0

请发表您的广播接收器的代码。 – Erol 2012-07-11 05:48:42

+0

我已经发布了它的最新资讯,PLZ – Ishant 2012-07-11 05:52:18

回答

1

startActivity会自动将活动带到您正在查看的whicever活动的前台。用户可以使用后退按钮返回到前一个。这是事情常用的方式。

但是,您可以使用moveTaskToBack(true)您的活动发送到后台。

Here是功能说明。

编辑

退房this question和使用该解决方案,看看你的活动是在后台。如果是,则使用我上面建议的方法将新活动发送到后台。

+0

我想你不明白我的problem..the问题是飞溅活动保持到后台,如果应用程序在后台...所以当用户正在工作的一些其他的事情,如果互联网连接消失,突然间的飞溅活动不应该前来,并扰乱用户 – Ishant 2012-07-11 06:20:01

+0

如果您的活动的唯一工作是显示有关互联网连接的消息,那么Toast消息将更适合您。它只会出现几秒钟,然后消失,无论是在前景还是背景中。 – Erol 2012-07-11 06:22:34

+0

我需要的,只有....这就是问题的人.... Toast是不是solution..it将是有益的,如果你能建议我关于禁用和启用再次广播Receiver..thanks ... – Ishant 2012-07-11 06:23:44

0
if (isNetworkDown) { 
    Log.d(TAG, "onReceive: NOT connected, stopping UpdaterService"); 

    // Check the foreground package 
    ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); 
    List<ActivityManager.RunningTaskInfo> runningTasks = activityManager.getRunningTasks(1); 
    ComponentName topActivity = runningTasks.get(0).topActivity; 
    String foregroundPackageName = topActivity.getPackageName(); 
    if(foregroundPackageName.equals(context.getPackageName()) { 
     Intent myintent = new Intent(context,NoConnectivity.class); 
     myintent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     context.startActivity(myintent); 
    } 
} 
相关问题