lpp_kai 2023-02-22 21:33 采纳率: 0%
浏览 161
已结题

Android怎么在apk安装成功后自启动

Android怎么在apk安装成功后使用ContentProvider 通过系统联系人 启动app,能提供源码demo最好

  • 写回答

13条回答 默认 最新

  • GPT_Pro 2023-02-22 21:45
    关注

    该回答内容部分引用GPT,GPT_Pro更好的解决问题
    Android在apk安装成功后自启动,可以采用ContentProvider来实现,ContentProvider能够读取系统联系人,从而启动app。下面给出一份简单的源码demo,可以作为参考。

    public class MyContentProvider extends ContentProvider {
        @Override
        public boolean onCreate() {
            Intent intent = new Intent(getContext(), MainActivity.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            getContext().startActivity(intent);
            return true;
        }
    
        @Nullable
        @Override
        public Cursor query(@NonNull Uri uri, @Nullable String[] projection, @Nullable String selection, @Nullable String[] selectionArgs, @Nullable String sortOrder) {
            return null;
        }
    
        @Nullable
        @Override
        public String getType(@NonNull Uri uri) {
            return null;
        }
    
        @Nullable
        @Override
        public Uri insert(@NonNull Uri uri, @Nullable ContentValues values) {
            return null;
        }
    
        @Override
        public int delete(@NonNull Uri uri, @Nullable String selection, @Nullable String[] selectionArgs) {
            return 0;
        }
    
        @Override
        public int update(@NonNull Uri uri, @Nullable ContentValues values, @Nullable String selection, @Nullable String[] selectionArgs) {
            return 0;
        }
    }
    

    具体步骤如下:

    1. 在AndroidManifest.xml文件中声明ContentProvider:
    <provider  android:name=".MyContentProvider" >  
                android:authorities="com.example.mycontentprovider"  >  
    </provider>  
    
    1. 在MyContentProvider类中重写onCreate()方法,在该方法中启动MainActivity:

    @Override public boolean onCreate() { Intent intent = new Intent(getContext(), MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); getContext().startActivity(intent); return true; }

    1. 最后,当应用安装完成后,系统会自动调用MyContentProvider的onCreate()方法,从而启动应用。
      如果回答有帮助,望采纳。
    评论

报告相同问题?

问题事件

  • 系统已结题 3月2日
  • 创建了问题 2月22日