2012-12-13 32 views
1

我想要調用它使用廣播接收機如何調用使用廣播接收器在安卓

/** 
* Delete all messages 
*/ 
private void performDeleteAll() { 
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
    builder.setMessage(getString(R.string.confirm_message)) 
      .setCancelable(false) 
      .setNegativeButton(getString(R.string.confirm_no), 
        new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int id) { 
          dialog.cancel(); 
         } 
        }) 
      .setPositiveButton(getString(R.string.confirm_yes), 
        new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int id) { 
          // delete all messages 
          mHandler.post(mDeleteAllMessages); 
          adapter.refresh(); 
         } 
        }); 
    AlertDialog alert = builder.create(); 
    alert.show(); 

}

刪除所有消息,但在固定時間調用此方法的報警接口它不會發生plz幫我 在此先感謝

/** *刪除所有消息。 0 - 成功刪除。 1 - 沒有什麼可以 *刪除。 */

final Runnable mDeleteAllMessages = new Runnable() { 
    public void run() { 
     getActivity().setProgressBarIndeterminateVisibility(true); 
     boolean result = false; 

     int deleted = 0; 

     if (adapter.getCount() == 0) { 
      deleted = 1; 
     } else { 
      result = model.deleteAllMessages(); 
     } 

     try { 
      if (deleted == 1) { 
       toastLong(R.string.no_messages_to_delete); 
      } else { 
       if (result) { 

        toastLong(R.string.messages_deleted); 
        showMessages(); 
       } else { 
        toastLong(R.string.messages_deleted_failed); 
       } 
      } 
      getActivity().setProgressBarIndeterminateVisibility(false); 
     } catch (Exception e) { 
      return; 
     } 
    } 
}; 

我使用該廣播接收機

public class AlarmReceiver extends BroadcastReceiver implements Runnable { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     // TODO Auto-generated method stub 
     Toast.makeText(context, "Import Messages Invoke ",Toast.LENGTH_LONG).show(); 
    // context.startService(new Intent(context,ImportMessagesTask.class)); 

     MessagesModel.deleteAllMessages();{ 
    // new MessagesModel().deleteAllMessages(); 

     Database.mMessagesContentProvider.deleteAllMessages(); 
     } 

    // mHandler.post(mDeleteAllMessages); 
    // adapter.refresh(); 

如你所說的我做我創建了一個活動

公共類活動擴展PendingMessages實現Runnable {

/** 
* Delete all messages. 0 - Successfully deleted. 1 - There is nothing to be 
* deleted. 
*/ 

@Override 
public void run() { 
    // TODO Auto-generated method stub 
    getActivity().setProgressBarIndeterminateVisibility(true); 
    boolean result = false; 

    int deleted = 0; 

    if (adapter.getCount() == 0) { 
     deleted = 1; 
    } else { 
     result = model.deleteAllMessages(); 
    } 

    try { 
     if (deleted == 1) { 
      toastLong(R.string.no_messages_to_delete); 
     } else { 
      if (result) { 

       toastLong(R.string.messages_deleted); 
       showMessages(); 
      } else { 
       toastLong(R.string.messages_deleted_failed); 
      } 
     } 
     getActivity().setProgressBarIndeterminateVisibility(false); 
    } catch (Exception e) { 
     return; 
    } 
} 

}

然後通過調用它

context.startService(new Intent(context,Activity.class));

但其當時不工作我把它叫做throught

context.startActivity(新意圖(背景下,Activity.class));

那麼它的力量,收 我沒有得到任何幫助,它PLZ讓我正確 由於事先

+0

問題是什麼? – Blackbelt

回答

1

實際上,問題是,我想在後臺運行的UI但在Android中不可能。然後我用Service在後臺運行

1

您不能顯示來自廣播Reciever UI。

把上面的代碼中的活動,並開始練習從BroadcastReciever

編輯:使用

context.startActivity(intent); 

開始活動

+0

感謝您的快速回復,但我無法從此代碼啓動活動,PLZ幫助我 – IPL10

+0

創建意圖獲取上下文startActivity/startService,它不應該是一個問題 –

+0

PLZ告訴我在新的活動中,我應該實現Runnable或者是什麼 ? PLZ給我一些例子 – IPL10