2012-07-11 89 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); 
    } 
} 
相關問題