Android Notification下载实例
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/btn_start_service"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="start service" />
</LinearLayoutactivity:
public class MainActivity extends Activity {
private Button btn_start_service;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn_start_service=(Button)findViewById(R.id.btn_start_service);
btn_start_service.setOnClickListener(clickListener);
}
private OnClickListener clickListener=new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this,StatusService.class);
startService(intent);
}
};
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
NotificationManager manager=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
manager.cancel(R.layout.main);// 下载完成后,点击后,移除NotificationManager
}
}services:
public class StatusService extends IntentService
{
private static final String TAG = "StatusService";
// private static final int KUKA = 0;
public StatusService()
{
super("StatusService");
}
@Override
protected void onHandleIntent(Intent intent)
{
Log.i(TAG, "开始下载....");
showNotification(false);//开始下载
try
{
Thread.sleep(10000);
showNotification(true);//下载完成
} catch (InterruptedException e)
{
e.printStackTrace();
}
Log.i(TAG, "程序下载完毕");
}
// finish下载是否完成
private void showNotification(boolean finish)
{
Notification notification;
NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Intent intent = new Intent(this, MainActivity.class);//下拉点击执行的activity
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
if (!finish)
{
//图标 下载提示 时间
notification = new Notification(R.drawable.head, "开始下载", System.currentTimeMillis());
//显示在拉伸状态栏中的Notification属性,点击后将发送PendingIntent对象。
notification.setLatestEventInfo(this, "下载", "正在下载中", contentIntent);
}
else
{
notification = new Notification(R.drawable.head, "下载完毕", System.currentTimeMillis());
notification.setLatestEventInfo(this, "下载", "程序下载完毕", contentIntent);
}
//下载的默认声音
notification.defaults= Notification.DEFAULT_SOUND;
//r.layout.main是为manager指定一个唯一的id
manager.notify(R.layout.main, notification);//将自定义的notification放入NotificationManager
}
}最后别忘记注册service
<service android:name=".StatusService"/>
更多详细介绍:
http://blog.csdn.net/qinjuning/article/details/6915482
相关推荐
xfcyhades 2020-11-20
Michael 2020-11-03
业余架构师 2020-10-09
OuNuo0 2020-09-29
moses 2020-09-22
Angelia 2020-09-11
qinxu 2020-09-10
刘炳昭 2020-09-10
Nostalgiachild 2020-09-07
Nostalgiachild 2020-08-17
leavesC 2020-08-14
一青年 2020-08-13
AndroidAiStudy 2020-08-07
ydc0 2020-07-30
绿豆饼 2020-07-28