我想创建一个每次设备解锁时启动的应用。
我是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);
}
}
我做错了什么?这是我的结构吗?在添加接收器之前是否需要添加权限?
答案 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>