举例:
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();