应用被系统回收导致崩溃的解决方案

当应用被系统回收后,重新打开可能导致静态变量空指针异常,从而引起应用崩溃。例如,NewsActivity中未缓存的集合变量会导致问题。解决方案包括对可能引发崩溃的变量进行缓存,避免过度依赖静态变量,或者检查强杀标志并主动重启应用来应对系统回收。
摘要由CSDN通过智能技术生成

应用被系统回收导致崩溃的解决方案

应用长时间被搁置后台,如果应用进程被系统回收(内存不足),重新打开应用时,会造成静态变量空指针,进而应用崩溃。

有以下简单的示例代码:

BaseApplication

public class BaseApplication extends Application {

public static int forceKill = -1;

public static List<String> news;

@Override
public void onCreate() {
    super.onCreate();
}

public static void initNews() {
    List<String> news = new ArrayList<>();
    news.add("1");
    news.add("21");
    news.add("321");
    BaseApplication.news = news;
}

MainActivity(Launcher)

public class MainActivity extends Activity {

    private Button btnJump;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btnJump = findViewById(R.id.btn_jump);
        //正常启动,置为0
        forceKill &
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值