package mi.email.activity;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Properties;
import java.util.Timer;
import java.util.TimerTask;
import javax.mail.Flags;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.internet.MimeMessage;
import mi.email.core.ResolveMail;
import mi.learn.com.R;
import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
import android.view.MenuItem.OnMenuItemClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.SimpleAdapter;
public class ReceiveList extends Activity {
private static final String SAVE_INFORMATION = "save_information";
private ListView listview;
String Title;
String Date;
String From;
String Content;
String username;
String password;
long interval = 600000;//默认十分钟刷新一次收件箱
Timer timer = null;
TimerTask task = new TimerTask(){
public void run() {
android.os.Message message = new android.os.Message();
message.what = 1;
handler.sendMessage(message);
}
};
Handler handler = new Handler(){
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
case 1:
Log.i("xxx", "catch handler");
try {
MenuList();
} catch (MessagingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
break;
}
super.handleMessage(msg);
}
};
protected void onResume() {
try {
MenuList();
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
timer = new Timer();
timer.schedule(new TimerTask(){
public void run() {
android.os.Message message = new android.os.Message();
message.what = 1;
handler.sendMessage(message);
}
}, interval,interval);
super.onResume();
}
protected void onPause() {
if (timer != null) {
timer.cancel();
}
super.onPause();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.listmenu);
setTitle("Mail Box");
listview = (ListView) findViewById(R.id.my_list);
listview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
Intent intent = new Intent();
intent.putExtra("ID", position);
intent.setClass(ReceiveList.this, MailDetails.class);
startActivity(intent);
Log.i("xxx", "ID = "+position);
}
});
}
public void MenuList() throws MessagingException, IOException {
// sharedpreference读取数据,用split()方法,分开字符串。
SharedPreferences pre = getSharedPreferences(SAVE_INFORMATION,MODE_WORLD_READABLE);
String content = pre.getString("save", "");
String[] Information = content.split(";");
username = Information[0];
password = Information[1];
Properties props = new Properties();
Session session = Session.getDefaultInstance(props); // 取得pop3协议的邮件服务器
Store store = session.getStore(SetupControl.ShareInstance().getStoreType());//"pop3"
// 连接pop.sina.com邮件服务器 //
store.connect(SetupControl.ShareInstance().getReceiveFromSever(), username, password); // 返回文件夹对象"pop.qq.com"
Folder folder = store.getFolder("INBOX"); // 设置仅读
folder.open(Folder.READ_ONLY); // 获取信息
Message message[] = folder.getMessages();
Log.i("xxx", "list count = "+message.length);
ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();//定义一个List并且将其实例化
for (int i = 0; i < message.length; i++) {
//通过for语句将读取到的邮件内容一个一个的在list中显示出来
ResolveMail receivemail = new ResolveMail((MimeMessage) message[i]);
// message[i].setFlag(Flags.Flag.DELETED, true);
Log.i("xxx", "title = "+receivemail.getSubject());
Title = receivemail.getSubject();//得到邮件的标题
Date = receivemail.getSentDate();//得到邮件的发送时间
HashMap<String, String> map = new HashMap<String, String>();//定义一个Map.将获取的内容以键值的方式将内容展现
map.put("title", Title);//显示邮件的标题
map.put("info", Date);//显示邮件的信息
list.add(map);
SimpleAdapter listAdapter = new SimpleAdapter(this, list,R.layout.item, new String[] { "title", "info" }, new int[] {
R.id.title, R.id.info });
listview.setAdapter(listAdapter);
}
folder.close(true);//用好之后记得将floder和store进行关闭
store.close();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
SubMenu fontMenu = menu.addSubMenu("接收设定");
fontMenu.setIcon(R.drawable.ic_launcher);
fontMenu.setHeaderIcon(R.drawable.a);
MenuItem ten = fontMenu.add("10分钟");
MenuItem thirty = fontMenu.add("30分钟");
MenuItem sixty = fontMenu.add("60分钟");
ten.setOnMenuItemClickListener(new OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
// TODO Auto-generated method stub
Log.i("xxx", "ten clicked...");
interval = 600000;
changeSchedule(interval);
return true;
}
});
thirty.setOnMenuItemClickListener(new OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
// TODO Auto-generated method stub
Log.i("xxx", "thirty clicked...");
interval = 1800000;
changeSchedule(1800000);
return true;
}
});
sixty.setOnMenuItemClickListener(new OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
// TODO Auto-generated method stub
Log.i("xxx", "sixty clicked...");
interval = 3600000;
changeSchedule(3600000);
return true;
}
});
return super.onCreateOptionsMenu(menu);
}
protected void changeSchedule(long interval) {
// TODO Auto-generated method stub
if (timer != null) {
timer.cancel();
}
timer = new Timer();
timer.schedule(new TimerTask(){
public void run() {
android.os.Message message = new android.os.Message();
message.what = 1;
handler.sendMessage(message);
}
}, interval,interval);
}
}
- 1
- 2
前往页