2017-02-13 9 views
0

Я использую много Async Task.I есть ящик навигации и там одна кнопка есть. при нажатии этой кнопки я перейду к следующему действию. Также как остановить задачу asynck из Navigation Drawer. asyncktask .cancel (true), как использовать в навигационном ящике, потому что asyncktask в main activity.or как получить объект задачи asynck из mainactivity в Navigation Drawer.im в той же активности и по активности, вызывающей навигацию drawer.help me im, которая работает в много дней. это возможно или нет?Как остановить asyncktask из Navigation Drawer или это возможно

+0

Я хочу остановить все asyncktask mainactivity от naviationdrawer перед тем, как перейти к следующему действию. –

+0

Я бы сказал, вызовите asyncTask.cancel (true) из обработчика onClick вашего навигационного элемента. Или, если это меню из onMenuItemSelected –

+0

, но но Asyncktast im, вызывающий в 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 я попробую i will upvote plz upvode мой вопрос также –

+0

почему тай дал мне downvote –

+0

у меня есть 1 вопрос i m в ящике навигации –