在接收到另一个 class 的广播信号时将 activity 放在前面
Bring activity in front on receiving Broadcast signal from another class
我有 main activity,它只是为 ACTION_USER_RESENT 注册了广播接收器。我在另一个class中写了接收广播信号的代码如下。
public class ReceiverScreen extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if(intent.getAction().equals(Intent.ACTION_USER_PRESENT))
{
//?
}
}
}
场景: 当我 运行 程序它 运行s 并且我没有退出程序并且只是按下设备上的主页按钮即应用保持 运行ning.
问题: 当我锁定和解锁手机时,它显示手机的主屏幕。但我希望我的应用程序在解锁手机后显示。我应该在上面的 if 条件中写什么,以便我的应用程序首先可见。
请帮忙...
您可以在 onReceive
() 中编写以下代码。
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(Intent.ACTION_USER_PRESENT))
{
Intent intent = new Intent(context,YourActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
}
因此,当屏幕解锁时,您的应用程序将收到 ACTION_USER_PRESENT
广播,您可以从那里开始您的应用程序 Activity。
标志 FLAG_ACTIVITY_NEW_TASK
是必需的,否则您的应用程序将因 java.lang.RuntimeException
而崩溃,因为从 Activity 上下文外部调用 startActivity
() 需要 FLAG_ACTIVITY_NEW_TASK
旗帜。
我有 main activity,它只是为 ACTION_USER_RESENT 注册了广播接收器。我在另一个class中写了接收广播信号的代码如下。
public class ReceiverScreen extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if(intent.getAction().equals(Intent.ACTION_USER_PRESENT))
{
//?
}
}
}
场景: 当我 运行 程序它 运行s 并且我没有退出程序并且只是按下设备上的主页按钮即应用保持 运行ning.
问题: 当我锁定和解锁手机时,它显示手机的主屏幕。但我希望我的应用程序在解锁手机后显示。我应该在上面的 if 条件中写什么,以便我的应用程序首先可见。
请帮忙...
您可以在 onReceive
() 中编写以下代码。
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(Intent.ACTION_USER_PRESENT))
{
Intent intent = new Intent(context,YourActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
}
因此,当屏幕解锁时,您的应用程序将收到 ACTION_USER_PRESENT
广播,您可以从那里开始您的应用程序 Activity。
标志 FLAG_ACTIVITY_NEW_TASK
是必需的,否则您的应用程序将因 java.lang.RuntimeException
而崩溃,因为从 Activity 上下文外部调用 startActivity
() 需要 FLAG_ACTIVITY_NEW_TASK
旗帜。