举例:
public interface onUserTouchListener { public boolean onUserTouch(MotionEvent e); }
private onUserTouchListener mListener;
public void setOnUserTouchListener(onUserTouchListener listener) { mListener = listener; }
其他程序实现该接口
views.setOnUserTouchListener(new onUserTouchListener(){ public boolean onUserTouch(MotionEvent e) { return false; } });
举例二:
public class UnreadMessagesAsyncQuery { AsyncTask<Void, Void, Cursor> mAsyncTask; completeListener mContext; ContentResolver mContentResolver; public UnreadMessagesAsyncQuery(completeListener context, ContentResolver contentResolver){ mContext = context; mContentResolver = contentResolver; } public synchronized void query(){ mAsyncTask = new AsyncTask<Void, Void, Cursor>(){ @Override protected Cursor doInBackground(Void... arg0) { Cursor cursor = mContentResolver.query(Im.COUNT_UNREAD_MESSAGE, null, null, null, null); return cursor; } @Override protected void onPostExecute(Cursor result) { if(mContext!=null){ mContext.onQueryResult(result); } } }; mAsyncTask.execute(); } public interface completeListener{ public void onQueryResult(Cursor result); } }private UnreadMessagesAsyncQuery mUnreadQuery; private UnreadMessagesAsyncQuery.completeListener mUnReadQueryListener= new UnreadMessagesAsyncQuery.completeListener(){ @Override public void onQueryResult(Cursor cursor) { if(cursor!=null){ //do something... setUnreadBadge(cursor.getCount()); cursor.close(); } } }; mUnreadQuery = new UnreadMessagesAsyncQuery(mUnReadQueryListener, getContentResolver()); mUnreadQuery.query();