2017-02-13 63 views
0

我使用了許多異步任務。我有導航抽屜,那裏有一個按鈕。點擊這個按鈕我要去下一個活動。所以如何停止導航抽屜裏的asynck任務。 asyncktask .cancel(true),如何在導航抽屜中使用,因爲asyncktask在主要activity.or如何獲取asynck任務的對象從mainactivity到導航Drawer.im在同一活動和活動im調用導航drawer.help我即時通訊構造很多天。它可能與否?如何停止從導航抽屜asyncktask或是否有可能

+0

我想在進入下一個活動 –

+0

之前停止naviationdrawer主要活動的所有asyncktask。我會說,從導航抽屜的按鈕的onClick處理程序中調用asyncTask.cancel(true)。或者,如果它是來自onMenuItemSelected –

+0

的一個菜單,但Asyncktast即時調用Mainactivity –

回答

1

在您的情況LocalBraodcastManager就會得心應手

使用方法如下

在MainActivity

@Override 
public void onCreate(Bundle savedInstanceState) { 
    LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver, 
      new IntentFilter("custom-event-name")); 
} 

private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     //Cancel all your asyncTask here 
    } 
}; 

@Override 
protected void onDestroy() { 
    // Unregister since the activity is about to be closed. 
    LocalBroadcastManager.getInstance(this).unregisterReceiver(mMessageReceiver); 
    super.onDestroy(); 
} 

而且從抽屜式導航

Intent intent = new Intent("custom-event-name"); 
LocalBroadcastManager.getInstance(context).sendBroadcast(intent); 

希望你能解決問題與這個。

+0

tnx我會試試我會upvote plz upvode我的問題也 –

+0

爲什麼泰國給我downvote –

+0

我有1個問題我在海軍抽屜裏 –