android app始终在最顶层 代码举例
时间: 2024-11-22 11:34:08 浏览: 8
在Android应用中,如果你希望一个Activity始终保持在屏幕顶部,通常是在处理后台服务或通知时,你会创建一个Service或者Notification,而不是直接让一个Activity保持显示。下面是一个简单的例子:
**创建Service的例子(Service会一直运行并保持在前台):**
```java
public class MyForegroundService extends Service {
@Override
public void onStartCommand(Intent intent, int flags, int startId) {
// 创建一个Notification以保持在任务栏
Notification notification = new NotificationCompat.Builder(this, "my_channel")
.setContentTitle("我的服务")
.setContentText("正在运行...")
.setSmallIcon(R.drawable.ic_notification)
.setPriority(NotificationCompat.PRIORITY_FOREGROUND)
.build();
startForeground(NOTIFICATION_ID, notification); // 显示通知并保持在最前端
// 这里添加你的长期运行的任务...
return START_STICKY;
}
// 其他Service方法...
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
```
在这个例子中,`startForeground()`方法将Service置于前台,并保持其通知可见。
**创建BroadcastReceiver的通知例子(通过广播接收器启动Notification):**
```java
Intent intent = new Intent(this, MyForegroundActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);
Notification notification = new NotificationCompat.Builder(this)
.setContentTitle("重要更新")
.setContentText("请查看...")
.setContentIntent(pendingIntent)
.setPriority(NotificationCompat.PRIORITY_HIGH)
.build();
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(NOTIFICATION_ID, notification);
```
这会在接收到特定广播时显示一个通知,并让用户点击进入你的Activity。
阅读全文