官方文档
C:Program FilesAndroidAndroid Studiojrebin
C:UsersadminAppDataLocalAndroidSdkplatform-tools
版本过高,将adle版本降低
//将 33版本改为30
android {compileSdkVersion 30buildToolsVersion "30.0.0"defaultConfig {targetSdkVersion 30}
}
用@android:style/Theme.Dialog的话必须把对应的JAVA程序继承的 AppCompatActivity改为Activity
如果使用@style/Theme.AppCompat.Dialog的话就不用改
原因:
eclipse的MainActivity.java继承的是Activity类,而android studio中Main继承的是AppCompatActivity
版本过老,Android studio升级到3.0之后,compile就改为了implementation
依赖的写法改为:implementation
implementation 'androidx.percentlayout:percentlayout:1.0.0'
l
<?xml version="1.0" encoding="utf-8"?>
<androidx.percentlayout.widget.PercentFrameLayoutxmlns:android=""xmlns:app=""android:layout_width="match_parent"android:layout_height="match_parent"><Buttonandroid:id="@+id/button1"android:text="Button 1"android:layout_gravity="left|top"app:layout_widthPercent="50%"app:layout_heightPercent="50%"/><Buttonandroid:id="@+id/button2"android:text="Button 2"android:layout_gravity="right|top"app:layout_widthPercent="50%"app:layout_heightPercent="50%"/><Buttonandroid:id="@+id/button3"android:text="Button 3"android:layout_gravity="left|bottom"app:layout_widthPercent="50%"app:layout_heightPercent="50%"/><Buttonandroid:id="@+id/button4"android:text="Button 4"android:layout_gravity="right|bottom"app:layout_widthPercent="50%"app:layout_heightPercent="50%"/>
</androidx.percentlayout.widget.PercentFrameLayout>
adle,引入
implementation 'com.android.support:recyclerview-v7:30.1.0'
在gradle.properties中有下面两行代码:
android.useAndroidX=true//当前项目是否启用androidx
ableJetifier=true//是否将依赖包迁移至androidx。
因此新建布局时需要以androidx为路径的开头,修改布局代码如下:
&lerview.widget.RecyclerViewandroid:id="@+id/recycler_view"android:layout_width="match_parent"android:layout_height="match_parent"/>
链接: message_left.png
链接: 环境配置
//ActiveNetworkInfo()为红色,是因为没有权限
NetworkInfo ActiveNetworkInfo();
在app/src/l里添加权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
需要注意一下,不是看到启动界面以后就是启动完成了,而是得等他全部准备好,才会出现提示框,显示“Boot Complete”,就好像开了电脑以后,得等那个电脑管家提示“开机用了多少秒,打败了全国百分之多少的用户”,才差不多算完全开机
在安卓8.0之后取消了大部分静态注册
发送广播的时候携带intent.addFlags(0x01000000); 即能让广播突破隐式广播限制。
Button button=(Button) findViewById(R.id.button);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Intent intent=new Intent("ample.broadcasttest.MY_BROADCAST");//发送广播前加上“intent.addFlags(0x01000000);”骗过安卓8.0+的检测,即能让广播突破隐式广播限制intent.addFlags(0x01000000);sendBroadcast(intent);//标准广播//sendOrderedBroadcast(intent,null);//有序广播,截断有序广播}});
截断有序广播
Broadcasttest项目—>MainActivity.java
Button button=(Button) findViewById(R.id.button);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Intent intent=new Intent("ample.broadcasttest.MY_BROADCAST");//发送广播前加上“intent.addFlags(0x01000000);”骗过安卓8.0+的检测,即能让广播突破隐式广播限制intent.addFlags(0x01000000)sendOrderedBroadcast(intent,null);}});
Broadcasttest项目—&l
<manifest xmlns:android=""package="ample.broadcasttest">...<receiverandroid:name=".MyBroadcastReceiver"android:enabled="true"android:exported="true">//通过android:priority设置优先级<intent-filter android:priority="100" ><action android:name="ample.broadcasttest.MY_BROADCAST"/></intent-filter></receiver>...
</manifest>
Broadcasttest项目—>MyBroadcastReceiver.java
本文发布于:2024-01-29 07:10:07,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170648341213579.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |