android在桌面弹出一个窗口

时间:2021-10-23 15:59:00

遇到了这种需求,要和iPhone一样的效果.

下面是简单实现功能,优化和美化部分,有时间慢慢搞。

方法应该有不少吧,我用的是弹出一个activity,将这个activity的Theme设置为Theme.Dialog

在Manifest.xml里

[html] view
plain
copy
  1. <activity
  2. android:name="com.android.activity.PopupkActivity"
  3. android:theme="@android:style/Theme.Dialog"
  4. android:alwaysRetainTaskState="true"
  5. android:configChanges="keyboardHidden|orientation"
  6. android:screenOrientation="portrait" />

使用一个广播来接收需要弹出来的事件,这里用的是监听时间流逝的广播,需要在代码里注册才能监听到

[java] view
plain
copy
  1. IntentFilter intentFilter = new IntentFilter();
  2. intentFilter.addAction(Intent.ACTION_TIME_TICK);
  3. registerReceiver(new TimeTickBookReceiver(), intentFilter);

收到广播后,在onReceive里处理

[java] view
plain
copy
  1. Intent mIntent = new Intent();
  2. mIntent.setClass(context, PopupActivity.class);
  3. mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  4. mIntent.putExtra("title", getTitle(book.epgtitle));
  5. context.startActivity(mIntent);

这样就可以在桌面上弹出一个窗口(实际是activity)