啥也不说看图:
点击后效果:
代码:主方法:
package com.text.ac; import java.util.Calendar; import android.app.Activity; import android.app.AlarmManager; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.os.SystemClock; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; /** * * @author Hardi * */ public class TextActivity extends Activity { Button button; Button buttonstop; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); button = (Button)findViewById(R.id.button); buttonstop=(Button)findViewById(R.id.titlebutton); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(); // 设置Action属性 intent.setAction("com.text.ac.action.MY_SERVICE"); // 启动该Service startService(intent); // startService(new Intent(ExTextActivity.this, MessageService.class)); } }); buttonstop.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(); // 设置Action属性 intent.setAction("com.text.ac.action.MY_SERVICE"); // 关闭该Service stopService(intent); } }); } }
写了一个服务:
package com.text.ac; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.app.Service; import android.content.Context; import android.content.Intent; import android.os.IBinder; import android.widget.Toast; public class MessageService extends Service { //获取消息线程 private MessageThread messageThread = null; //点击查看 private Intent messageIntent = null; private PendingIntent messagePendingIntent = null; //通知栏消息 private int messageNotificationID = 1000; private Notification messageNotification = null; private NotificationManager messageNotificatioManager = null; public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { //初始化 messageNotification = new Notification(); messageNotification.icon = R.drawable.ic_hehe; messageNotification.tickerText = "新消息"; messageNotification.defaults = Notification.DEFAULT_SOUND; messageNotificatioManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); //点击跳转的activity messageIntent = new Intent(this, TextActivity.class); messagePendingIntent = PendingIntent.getActivity(this,0,messageIntent,0); //开启线程 messageThread = new MessageThread(); messageThread.isRunning = true; messageThread.start(); Toast.makeText(MessageService.this, "aaaa", Toast.LENGTH_LONG).show(); super.onCreate(); } /** * 从服务器端获取消息 * */ class MessageThread extends Thread{ //运行状态,下一步骤有大用 public boolean isRunning = true; public void run() { while(isRunning){ try { //休息10分钟 Thread.sleep(5000); //获取服务器消息 String serverMessage = getServerMessage(); if(serverMessage!=null&&!"".equals(serverMessage)){ //更新通知栏 messageNotification.setLatestEventInfo(MessageService.this,"新消息","您中奖了,500万!"+serverMessage,messagePendingIntent); messageNotificatioManager.notify(messageNotificationID, messageNotification); //每次通知完,通知ID递增一下,避免消息覆盖掉 messageNotificationID++; } } catch (InterruptedException e) { e.printStackTrace(); } } } } @Override public void onDestroy() { // System.exit(0); //或者,二选一,推荐使用System.exit(0),这样进程退出的更干净 messageThread.isRunning = false; super.onDestroy(); } /** * 这里以此方法为服务器Demo,仅作示例 * @return 返回服务器要推送的消息,否则如果为空的话,不推送 */ public String getServerMessage(){ return "不错哦"; } }
点击运行即可!! demo下载点击
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-09-17 09:51:21