From 1b64a284279e113ca4d249a183c483ae6c65bcdb Mon Sep 17 00:00:00 2001 From: geduo83 Date: Thu, 21 Nov 2019 17:00:33 +0800 Subject: [PATCH] code perfect --- app/src/main/AndroidManifest.xml | 9 +++- .../com/mxdl/customview/MainActivity.java | 32 +++++++++++- .../provider/MyContentProvider.java | 51 +++++++++++++++++++ .../mxdl/customview/uml/ContentProvider.puml | 23 +++++++++ .../mxdl/customview/uml/ContentResolver.puml | 15 ++++++ 5 files changed, 127 insertions(+), 3 deletions(-) create mode 100644 app/src/main/java/com/mxdl/customview/provider/MyContentProvider.java create mode 100644 app/src/main/java/com/mxdl/customview/uml/ContentProvider.puml create mode 100644 app/src/main/java/com/mxdl/customview/uml/ContentResolver.puml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 50d3d03..2d4f1bb 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -12,10 +12,17 @@ android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> + + + android:exported="true" /> diff --git a/app/src/main/java/com/mxdl/customview/MainActivity.java b/app/src/main/java/com/mxdl/customview/MainActivity.java index 667dd2d..85ff929 100644 --- a/app/src/main/java/com/mxdl/customview/MainActivity.java +++ b/app/src/main/java/com/mxdl/customview/MainActivity.java @@ -1,10 +1,16 @@ package com.mxdl.customview; +import android.annotation.TargetApi; import android.app.Service; import android.content.Intent; +import androidx.annotation.RequiresApi; import androidx.appcompat.app.AppCompatActivity; + +import android.net.Uri; +import android.os.Build; import android.os.Bundle; +import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; @@ -13,6 +19,11 @@ import android.widget.Button; import com.mxdl.customview.test.MainTestActivity; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Locale; + /** * Description:
* Author: mxdl
@@ -50,6 +61,18 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe mBtnRectCapture.setOnClickListener(this); mBtnService.setOnClickListener(this); + + + } + + @TargetApi(Build.VERSION_CODES.N) + public Locale getCurrentLocale() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + return getResources().getConfiguration().getLocales().get(0); + } else { + //noinspection deprecation + return getResources().getConfiguration().locale; + } } @Override @@ -75,6 +98,11 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe break; case R.id.btn_service: startActivity(new Intent(this, TestServiceActivity.class)); + + Uri uri = Uri.parse("content://com.test.provider"); + getContentResolver().query(uri,null,null,null,null); + getContentResolver().query(uri,null,null,null,null); + getContentResolver().query(uri,null,null,null,null); break; } @@ -83,13 +111,13 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe @Override public boolean onCreateOptionsMenu(Menu menu) { - getMenuInflater().inflate(R.menu.menu_test,menu); + getMenuInflater().inflate(R.menu.menu_test, menu); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { - if(item.getItemId() == R.id.test){ + if (item.getItemId() == R.id.test) { startActivity(new Intent(this, MainTestActivity.class)); } return super.onOptionsItemSelected(item); diff --git a/app/src/main/java/com/mxdl/customview/provider/MyContentProvider.java b/app/src/main/java/com/mxdl/customview/provider/MyContentProvider.java new file mode 100644 index 0000000..5d04e28 --- /dev/null +++ b/app/src/main/java/com/mxdl/customview/provider/MyContentProvider.java @@ -0,0 +1,51 @@ +package com.mxdl.customview.provider; + +import android.content.ContentProvider; +import android.content.ContentValues; +import android.database.Cursor; +import android.net.Uri; +import android.util.Log; + +public class MyContentProvider extends ContentProvider { + public MyContentProvider() { + } + + @Override + public int delete(Uri uri, String selection, String[] selectionArgs) { + // Implement this to handle requests to delete one or more rows. + Log.v("MYTAG", "delete"); + return 0; + } + + @Override + public String getType(Uri uri) { + Log.v("MYTAG", "getType"); + return null; + } + + @Override + public Uri insert(Uri uri, ContentValues values) { + Log.v("MYTAG", "insert..."); + return null; + } + + @Override + public boolean onCreate() { + Log.v("MYTAG", "onCreate..."); + Log.v("MYTAG", "currThread:" + Thread.currentThread().getName()); + return false; + } + + @Override + public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { + Log.v("MYTAG", "query..."); + Log.v("MYTAG", "currThread:" + Thread.currentThread().getName()); + return null; + } + + @Override + public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { + Log.v("MYTAG", "update..."); + return 0; + } +} diff --git a/app/src/main/java/com/mxdl/customview/uml/ContentProvider.puml b/app/src/main/java/com/mxdl/customview/uml/ContentProvider.puml new file mode 100644 index 0000000..cb59b93 --- /dev/null +++ b/app/src/main/java/com/mxdl/customview/uml/ContentProvider.puml @@ -0,0 +1,23 @@ +@startuml +'ActivityThread.main +'ActivityThread.attach +'ActivityManagerService.attachApplication +'ActivityManagerService.attachApplicationLocked +'ApplicationThread.bindApplication +'ActivityThread.handleBindApplication +'ActivityThread.installContentProviders +'ActivityThread.installProvider +'ContentProvider.attachInfo +'ContentProvider.onCreate +ActivityThread -> ActivityThread : main +ActivityThread -> ActivityThread :attach +ActivityThread -> ActivityManagerService:attachApplication +ActivityManagerService -> ActivityManagerService:attachApplicationLocked +ActivityManagerService -> ApplicationThread:bindApplication +ApplicationThread -> ActivityThread:handleBindApplication +ActivityThread -> ActivityThread :installContentProviders +ActivityThread -> ActivityThread :installContentProviders +ActivityThread -> ActivityThread :installProvider +ActivityThread -> ContentProvider :attachInfo +ContentProvider -> ContentProvider :onCreate +@enduml \ No newline at end of file diff --git a/app/src/main/java/com/mxdl/customview/uml/ContentResolver.puml b/app/src/main/java/com/mxdl/customview/uml/ContentResolver.puml new file mode 100644 index 0000000..73c56d4 --- /dev/null +++ b/app/src/main/java/com/mxdl/customview/uml/ContentResolver.puml @@ -0,0 +1,15 @@ +@startuml + +'ContentResolver.query +'ApplicationContentResolver.query +'ActivityThread.acquireProvider +'ActivityManagerService.getContentProvider +'Transport.query +'ContentProvider.query +ContextImpl -> ContentResolver :query +ContentResolver -> ApplicationContentResolver :query +ApplicationContentResolver -> ActivityThread:acquireProvider +ActivityThread -> ActivityManagerService:getContentProvider +ActivityManagerService -> Transport:query +Transport -> ContentProvider:query +@enduml \ No newline at end of file -- GitLab