User_Present操作后启动应用程序 - 无法正常工作

时间:2017-12-09 16:50:19

标签: java android

我想创建一个每次设备解锁时启动的应用。

我是Android的新手,虽然我已经阅读了几十个答案和文档但是有太多的移动部件,我很难排除故障。

这是我的......

结构

app
 - manifests
  -- AndroidManifest.xml
 - java
  -- DisplayMessageActivity.java
  -- MainActivity.java
 - res
 - UnlockReceiver.java

这是在我的AndroidManifest.xml

<receiver android:name="UnlockReceiver">
    <intent-filter>
        <action android:name="android.intent.action.USER_PRESENT" />
    </intent-filter>
</receiver>

这是我的UnlockReceiver.java类

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import com.xywebsolutions.myapplication.MainActivity;

public class UnlockReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Intent myIntent = new Intent(context, MainActivity.class);
        myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(myIntent);
    }
}

我做错了什么?这是我的结构吗?在添加接收器之前是否需要添加权限?

2 个答案:

答案 0 :(得分:0)

您无需任何广播即可开始/停止视频。 您可以使用onResume()活动生命周期来启动视频。当活动对用户可见时,将调用onResume。 暂停视频的onPause()次活动。您还可以保存当前播放位置,并在使用onSaveInstanceState()功能

重新开始活动时从该位置开始

对于您的情况,您可以尝试这个

@Override
    public void onReceive(Context context, Intent intent) {
        //start activity
        Intent i = new Intent();
        i.setClassName("com.test", "com.test.MainActivity");
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(i);
    }

答案 1 :(得分:0)

两个更改,此问题已修复:

1)&#34; UnlockReceiver&#34;被移入java文件夹

app
 - manifests
  -- AndroidManifest.xml
 - java
  -- DisplayMessageActivity.java
  -- MainActivity.java
  -- UnlockReceiver.java
 - res

并且

2)清单中的接收者需要 android:exported =&#34; true&#34; ...

<receiver android:name="UnlockReceiver" android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.USER_PRESENT" />
    </intent-filter>
</receiver>